我在SQL Server中有几个由GUID连接的表.现在,我发现了一些自定义字段来添加对django中GUID的支持,但是如果可能的话,我倾向于回避在博客文章中使用代码.除了加入GUID之外,我不会对GUID做任何事情,也许会为新条目分配GUID(尽管这是可选的).有没有办法允许使用django的内置类型?就像我可以使用某种char字段或二进制字段和"技巧"django加入使用它?
如果有任何帮助,我正在使用django-pyodbc.
另一位开发人员和我正在另一台服务器上使用旧版SQL服务器数据库(SQLEXPRESS)设置django(v1.4.2)项目.到目前为止,我们已经能够使用django-pyodbc从linux和mac连接数据库,并使用django-mssql从运行Windows 7的笔记本电脑连接到数据库.我想在笔记本电脑上使用django-pyodbc来保持环境同步.
在笔记本电脑上:
所以,它不起作用,我得到以下错误信息,并不知道下一步该怎么做:
('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect); [01000] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (53); [01S00] [Microsoft][ODBC SQL Server Driver]Invalid connection string attribute (0)')
Run Code Online (Sandbox Code Playgroud)
我设置了django settings.py文件,如下所示:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sql_server.pyodbc',
'NAME': 'test',
'USER': 'test',
'PASSWORD': 'something_else',
'HOST': 'mssqlx',
'PORT': '12345',
'OPTIONS': {
'driver': 'SQL Server',
},
},
}
Run Code Online (Sandbox Code Playgroud)
在linux上,我的设置文件有一个DATABASES条目,如下所示: …
我正在使用pyodbc和SQL Server 2000.
我希望能够插入一行并获得自动递增的行ID值?有任何想法吗?
这是我到目前为止所拥有的:
cursor.execute("insert into products(id, name) values ('pyodbc', 'awesome library')")
cnxn.commit()
Run Code Online (Sandbox Code Playgroud) 这真的是标题.我想对MSSQL 2005运行Django.两者看起来都相当活跃并且是最新的.我似乎无法看到任何一个独特的点.
谢谢!
sql-server django database-connection django-pyodbc django-mssql
我正在使用 MSSQL 中的旧数据库。我们有一个表,其中有两列导致我出现问题:
class Emp(models.Model):
empid = models.IntegerField(_("Unique ID"), unique=True, db_column=u'EMPID')
ssn = models.CharField(_("Social security number"), max_length=10, primary_key=True, db_column=u'SSN') # Field name made lowercase.
Run Code Online (Sandbox Code Playgroud)
所以该表以 ssn 列作为主键,django 生成的 SQL 更新代码的相关部分是这样的:
UPDATE [EMP] SET [EMPID] = 399,
.........
WHERE [EMP].[SSN] = 2509882579
Run Code Online (Sandbox Code Playgroud)
问题是 EMP.EMPID 是 MSSQL 中的一个标识字段,因此每当我尝试将更改保存到现有员工时,pyodbc 都会抛出此错误:
ProgrammingError: ('42000', "[42000] [Microsoft][SQL Native Client][SQL Server]C
annot update identity column 'EMPID'. (8102) (SQLExecDirectW); [42000] [Microsof
t][SQL Native Client][SQL Server]Statement(s) could not be prepared. (8180)")
Run Code Online (Sandbox Code Playgroud)
将 EMP.EMPID 作为标识对程序的任何内容都不是至关重要的,因此通过创建临时列和复制、删除、重命名来删除它似乎是合乎逻辑的事情。这为将老客户转移到 Django 中创建了一个额外的步骤,所以我的问题是,有什么方法可以防止 Django 在我对这个表进行更新时生成 '[EMPID] …
我正在尝试将django与sqlserver连接.我已经安装了python odbc和django-odbc.
我的数据数据库配置(settings.py)
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'EDAS', # Or path to database file if using sqlite3.
'USER': 'sa', # Not used with sqlite3.
'PASSWORD': '1324', # Not used with sqlite3.
'HOST': 'DBIO01-HP', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '1433' # Set to empty string for default. Not used with sqlite3.
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行服务器时,我收到此错误:
C:\ edas> python manage.py runserver
Validating models...
Unhandled exception …Run Code Online (Sandbox Code Playgroud) 我认为我的问题或多或少是试图从在Linux上运行的django查询SQL Server的重复- 无法打开lib'/ path/to/libtdsodbc.so',但答案完全没有用.
我使用以下东西:
Python3Django 1.9 (通过pip3安装)freetds-dev 0.91-6build1 通过apt-get安装django-pyodbc-azure/ django-pyodbc通过pip3安装尝试连接时,执行python3 manage.py inspectdb以下操作:
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/base/base.py", line 199, in ensure_connection
self.connect()
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/base/base.py", line 171, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python3.4/dist-packages/sql_server/pyodbc/base.py", line 302, in get_new_connection
timeout=timeout)
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'FreeTDS' : file not found (0) (SQLDriverConnect)")
The above exception was the direct cause of the …Run Code Online (Sandbox Code Playgroud) 任何人都知道如何在 python 中建立连接来连接 as400 iseries 系统并使用参数调用任何 as400 程序。
例如如何通过python连接as400来创建库。我想从 python 脚本调用“ CRTLIB LIB(TEST) ”。
这是我连接 DB2 数据库的代码。
import pyodbc
connection = pyodbc.connect(
driver='{iSeries Access ODBC Driver}',
system='ip/hostname',
uid='username',
pwd='password')
c1 = connection.cursor()
c1.execute('select * from libname.filename')
for row in c1:
print (row)
Run Code Online (Sandbox Code Playgroud) 我有问题,使用的Django的用户登录django-pyodbc,freetds和unixodbc.我可以毫无问题地运行syncdb和连接pyodbc.
我得到的完整错误是:
('42000', '[42000] [FreeTDS][SQL Server]Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier. (4004) (SQLExecDirectW)
Run Code Online (Sandbox Code Playgroud)
freetds conf文件:
[PS123]
host = <ip number>
port = 2254
tds version = 8.0
instance = T_INS01
client charset = UTF-8
# somebody suggested this had to be global so I put it here as well
[global]
client …Run Code Online (Sandbox Code Playgroud) 我有一个 Django 1.8 应用程序,我使用的是 MsSQL 数据库,pyodbc 作为数据库后端(使用“django-pyodbc-azure”模块)。
我有以下型号:
class Branch(models.Model):
name = models.CharField(max_length=30)
startTime = models.DateTimeField()
class Device(models.Model):
uid = models.CharField(max_length=100, primary_key=True)
type = models.CharField(max_length=20)
firstSeen = models.DateTimeField()
lastSeen = models.DateTimeField()
class Session(models.Model):
device = models.ForeignKey(Device)
branch = models.ForeignKey(Branch)
start = models.DateTimeField()
end = models.DateTimeField(null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
我需要查询会话模型,我想排除一些具有特定设备值的记录。所以我发出以下查询:
sessionCount = Session.objects.filter(branch=branch)
.exclude(device__in=badDevices)
.filter(end__gte=F('start')+timedelta(minutes=30)).count()
Run Code Online (Sandbox Code Playgroud)
badDevices 是一个预填充的设备 ID 列表,大约有 60 个项目。
badDevices = ['id-1', 'id-2', ...]
Run Code Online (Sandbox Code Playgroud)
此查询大约需要 1.5 秒才能完成。如果我从查询中删除排除项,大约需要 250 毫秒。
我为这个查询集打印了生成的 sql,并在我的数据库客户端中进行了尝试。在那里,两个版本都在大约 250 毫秒内执行。
这是生成的 SQL:
SELECT [session].[id], [session].[device_id], [session].[branch_id], [session].[start], [session].[end] …Run Code Online (Sandbox Code Playgroud) 我正在使用 django-pyodbc-azure ( https://github.com/michiya/django-pyodbc-azure ),一切正常。但是,当我迁移模型时,会在 SQL Server 数据库上创建一个名为“dbo”的新架构。我想使用已经存在的“sp”模式,有什么方法可以设置工作模式?
提前致谢。
我想将我的 django 应用程序连接到 MS-SQL Server 2014 数据库。我写了这段代码来建立连接。
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'HOST':'DESKTOP-6UNRAN0',
'PORT':'1433',
'NAME': 'MOVIE',
'COLLATION' : '',
}
}
Run Code Online (Sandbox Code Playgroud)
我已经安装了 sql_server.pyodbc
pip install django-pyodbc-azure
Run Code Online (Sandbox Code Playgroud)
如文档https://pypi.org/project/django-pyodbc-azure/ 中所述。我仍然收到错误
django.db.utils.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序 (0) (SQLDriverConnect)')
django django-pyodbc sql-server-2014 pypyodbc django-mssql-backend
我正在尝试使用Django连接到现有的Informix数据库,我使用django-pyodbc-azure通过odbc处理连接,在python解释器中尝试时连接工作正常:
>>>import pyodbc
>>>conn = pyodbc.connect('DSN=test_ifx;UID=test;PWD=test')
>>>curs = conn.cursor()
>>>curs.execute("select * from someTable")
<pyodbc.Cursor object at 0x0052E520>
Run Code Online (Sandbox Code Playgroud)
所以这项工作很好但是在django中我创建了这样的数据库连接参数:
DATABASES = {
'default' : {
'ENGINE' : 'sql_server.pyodbc',
'NAME' : 'test',
'USERNAME' : 'test',
'PASSWORD' : 'test',
'PORT' : '1260',
'OPTIONS':{
'dsn' : 'test_ifx'
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当我启动服务器时,我收到以下错误:
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x0353DED0>
Traceback (most recent call last):
File "C:\Users\PatrickStewball\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\base\base.py", line 216, in ensure_connection
self.connect()
File "C:\Users\PatrickStewball\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\base\base.py", line 194, in connect
self.connection = self.get_new_connection(conn_params)
File "C:\Users\PatrickStewball\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sql_server\pyodbc\base.py", …Run Code Online (Sandbox Code Playgroud) django-pyodbc ×13
django ×11
sql-server ×8
pyodbc ×4
python ×2
db2-400 ×1
django-mssql ×1
freetds ×1
ibm-midrange ×1
informix ×1
odbc ×1
pypyodbc ×1
python-2.7 ×1
python-3.x ×1
windows ×1