我在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',但答案完全没有用.
我使用以下东西:
Python3
Django 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