问题标签 [django-pyodbc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - 自定义 Django 二进制字段和 SQL Server 2008
我有一张小桌子:
我可以用 SQL 查询插入一条记录:
该表的 Django 模型是:
GUIDField 是我尝试创建自定义字段:
我需要将 16 字节的二进制数据从 ORM 实例传递到数据库。很可能我必须在 SQL Server 端获得一个不带引号的字符串,后跟0x ......但是如何?
我正在使用 unixodbc、pyodbc、django-odbc。
python - Django pyodbc 存储过程错误 - 在字符串格式化期间并非所有参数都转换
我有一个 django 函数,它通过 pyodbc 调用 SQL Server 2008 中的存储过程,如下所示:
每当调用该函数时,我都会收到“error_message”:“在字符串格式化期间并非所有参数都被转换”
django - 如何使用 django-mssql 连接到 SQL Server 2008 R2?
我无法弄清楚为什么我无法让 django 连接到 sql server 2008 r2。我在我们的服务器和 sql server 上拥有管理权限。我用 windows server 2008 sp2 构建了一个虚拟 windows 框,因为我认为我可能对 django-mssql 有一些运气。我已经在 windows 盒子上尝试了 django-pyodbc 和 django-mssql 但还没有成功。这是我的数据库设置:
我得到的错误:
我会很感激任何见解。谢谢。
sql-server - windows上的django-pydobc SQL server连接问题
我和另一位开发人员正在另一台服务器上使用旧版 SQL 服务器数据库 (SQLEXPRESS) 设置 django (v1.4.2) 项目。到目前为止,我们已经能够使用 django-pyodbc 从 linux 和 mac 连接到数据库,并使用 django-mssql 从运行 Windows 7 的笔记本电脑连接到数据库。我想在笔记本电脑上使用 django-pyodbc 来保持环境同步。
在笔记本电脑上:
- pyodbc (3.0.6) 已安装并且在非 django .py 脚本中我可以连接并运行 sql 语句
- 通过下载zip下载django-pyodbc 1.4;我不确定我是否安装正确:
- 我解压缩了文件,并在顶层目录中运行了 setup.py 文件;它将 sql_server 目录放在 /lib/site-packages 目录中
- 将此 sql_server 目录复制到 /django/db/backends
- 创建了一个指向 /django/db/backends/sql_server 的 PYTHONPATH 环境变量
- 不确定它是否应该指向 /site-packages/sql_server ?
- 创建了 ODBC 数据源(系统 DSN)
- 测试连接选项是否有效
- 将 settings.py 中的 DATABASE 条目编辑为几乎与 linux 版本完全相同(详情如下)
所以,它不起作用,我收到以下错误消息,不知道下一步该怎么做:
我像这样设置 django settings.py 文件:
在 linux 上,我的设置文件有一个 DATABASES 条目,如下所示:
不知道它是否有助于解决这个问题,但是使用 django-mssql (仅在 Windows 上运行),(工作)条目是:
不知道其他信息可能会有所帮助。感谢您提供的任何帮助或见解。
----POST MORTEM ----这是最终奏效的:
数据库设置中的部分条目:
sql-server - 无法使用pyodbc在Django中加载长度超过19455个字符的文本字段的记录
我有一个这样的 Note 模型(这是从旧版 MS SQL Server 数据库中提取的,因此这些记录中的大多数不是由 Django 创建的):
.get
在某些记录上运行 a会返回 a DoesNotExist
,即使它们存在于数据库中。
事实证明,当 MS SQL Server TEXT
(如,CREATE TABLE Foo ( content TEXT null)
)字段中的内容长度超过一定数量时,就会发生这种情况;特别是 19455 个字符。
这是它在运行中的样子:
我正在使用 FreeTDS,并将文本大小设置为 2147483647,这似乎是我正在使用的 MS SQL Server 版本的上限。
根据this other question on truncation,您应该在指令前面加上SET TEXTSIZE n
n 是以字节为单位的值,这将解决数据被截断的问题。所以我想知道这是否发生在我的案例中,以及它是否会解决它。
因此,我继续编写了一些仅使用光标和SET TEXTSIZE
命令的代码。
首先,让我们看一下记录中应该包含哪些内容:
print "长度: %d; 最后 40 个字符: %s" % (len(note.content), note.content[-40:]) 长度: 19456; 最后 40 个字符:rVEF1cCJeRaTtcdkXMqqQUxEVLZapMGVGSxMfJ2T
现在我们循环遍历。每次我们增加 TEXTSIZE 设置并显示喜欢的记录。我们还显示返回记录字段的长度和最后 10 个字符。
因此,只要我们尝试检索 TEXTSIZE 设置为大于 19456 的数字的记录,就不会返回任何记录。您会注意到字符串的最后 10 个字符与上面的字符串相匹配,减去因太短而丢失的字符。例如,对于找到的最后一条记录,最后 10 个字符是MGVGSxMfJ2
. 它缺少T
真实记录中的 19455 的 TEXTSIZE 比相关字段的长度小一。
所以现在我当然想知道,这是怎么回事???是否有任何进一步的故障排除我可以确定这是否是 django-pyodbc、pyodbc 或 FreeTDS 的问题?它也可能是 SQL Server,但SET TEXTSIZE 19456 SELECT [Notes].[note_id], [Notes].[note_content] FROM [Notes] WHERE [Notes].[note_id] = 1
直接在 Server Management Studio 中运行似乎可以正常工作并返回正确数量的字符。
另请注意,保存工作:
python - 如何使用 pyodbc 连接远程 MS 访问
在我能够通过 freetds 使用 pyodbc 连接到 MS SQL 服务器之前,如何使用 pyodbc 连接到远程 MS Access DB。但是,如果我使用相同的 freetds 配置进行远程访问,'我不会成功。
有什么建议么?
sql-server - 在 Django 中使用 SQL Server 后端
我正在尝试使用 django-pyodbc 版本连接到外部 SQL Server Express 数据库:this github link但是当我运行manage.py shell
以检查是否可以执行 ORM 命令时,我不断收到此错误
我的 settings.py 有这个:
我完全不知道我应该做什么,所以欢迎所有想法。基本上我想要的是能够使用我制作的一个小应用程序与 SQL Server 数据库交互,同时能够使用普通的 DJango ORM 命令代替 pyodbc 连接字符串(顺便说一句,使用 pyodbc,我可以连接到SQL Server 数据库没有问题)
database - 为 Netezza 数据库 (nzSQL) 配置 Django
我对 Django 完全陌生(虽然不是 pyodbc),我对数据库设置的工作方式有点困惑。我想走模型路线并配置 settings.py 以连接到具有以下 odbc 配置的 Netezza 数据库:
这是 odbc 实例的样子:
我一生都无法弄清楚如何将其放入 settings.py 文件中。有人可以解释这是如何工作的吗?
PS 这里问了一个类似的问题:unixodbc and netezza ODBC driver issue (Undefined symbol: SSL_connect)但没有一个答案有帮助。
django - Django 对我的 DATABASES 设置做了一些奇怪的事情
我想将数据库后端从 django_pyodbc 切换到 sqlite,以确保我的自定义用户模型在我开始弄乱我的数据库之前工作。所以我注释掉了 DATABASES 设置并添加了一个使用 sqlite 的新设置。我以前做过这个(在这个项目上也是)没有问题,但现在我不知道发生了什么。
syncdb
就好像它正在查看一个已经同步的数据库一样响应,即它什么也不做。
在 shell
,settings.DATABASES 返回我原始数据库的设置(令人震惊的是,它仍然认为我正在使用几周前我为 django_pyodbc 切换的 sqlserver_ado 后端),并且我可以访问没有任何关系的模型到我的用户模型,但那些确实返回错误(因为我更改了一些用户字段名称)。在回溯中,我看到它仍在查看 MSSQL 数据库。
runserver
有效,但是当我转到一个页面时,我得到一个 DatabaseError - 没有这样的表:django_session. 异常位置在 ...\django\db\backends\sqlite3\...
这是完整的回溯:
是的; 我曾尝试再次打开和关闭计算机。有任何想法吗?谢谢你。
== 编辑 ==
这是我的数据库设置:
== 编辑2 ==
我在我的设置文件夹中查找__init__.py
,base.py
和dev.py
它们相关的 .pyc 文件。此外,还有一个settings.pyc
没有相应 .py 文件的文件(我假设这是我分割settings.py
成单独部分之前的残余。我尝试删除它并syncdb
再次执行并得到了这个:
django - syncdb - ValueError:解包的值太多
更新关闭 - 我想我经历了它,这对我来说有点愚蠢。
python manage.py 检查数据库>模型.py
我忘记将输出通过管道传输到文件!
我已经将它转储到我的 app/models.py 中,现在我只是想让它从那里运行但更进一步。
我试图让 django 在 SQL Server 2008 R2 服务器上运行。
我已经弄清楚了 FreeTDS/unixODBC 连接。我可以成功地对数据库进行 isql 和 tsql 查询。
我已经能够像这样直接在python中进行连接 -
如果我在 django shell 中做一个 inspectdb 就可以了。它返回 70 多个表格,并且它们的布局非常好。
一旦我尝试做一个 syndb,它就会溢出以下错误 -
同样,如果我尝试像这样在 django 中进行查询-
它失败并显示以下错误消息 -
我不相信这些错误与此处找到的其他线程有关-
但我不是专家,所以我可能是错的。我知道我确实尝试更改我的密码,但它不会让我连接类似的错误消息 -
编辑添加 - 进行查询时,我的模型定义如下 -
编辑以添加我已经完成了全新的重新安装。擦除虚拟机并使其恢复活力。这是完成的步骤的细分
apt-get install gcc g++ make python-dev
下载 unixODBC
tar xzvf unixODBC-2.3.2.tar.gz
。/配置
制作
安装
下载 FreeTDS
tar xzvf freetds-stable.tgz
./configure --with-tdsver=8.0 --with-unixodbc=usr/local
制作
进行安装
ldconfig -v
odbc.ini
odbcinst.ini
freetds.conf
tsql -S mssql -U 用户 -P 密码有效
isql -v mssql 用户密码有效(由于某种原因,简单的 isql -v mssql 无效)
apt-get 安装 python-setuptools
easy_install pip
点安装pyodbc
点安装 Django==1.6
pip install django-pyodbc-azure
设置.py