问题标签 [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.

0 投票
1 回答
657 浏览

django - 自定义 Django 二进制字段和 SQL Server 2008

我有一张小桌子:

我可以用 SQL 查询插入一条记录:

该表的 Django 模型是:

GUIDField 是我尝试创建自定义字段:

我需要将 16 字节的二进制数据从 ORM 实例传递到数据库。很可能我必须在 SQL Server 端获得一个不带引号的字符串,后跟0x ......但是如何?

我正在使用 unixodbc、pyodbc、django-odbc。

0 投票
1 回答
1592 浏览

python - Django pyodbc 存储过程错误 - 在字符串格式化期间并非所有参数都转换

我有一个 django 函数,它通过 pyodbc 调用 SQL Server 2008 中的存储过程,如下所示:

每当调用该函数时,我都会收到“error_message”:“在字符串格式化期间并非所有参数都被转换”

0 投票
1 回答
9586 浏览

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 但还没有成功。这是我的数据库设置:

我得到的错误:

我会很感激任何见解。谢谢。

0 投票
1 回答
3020 浏览

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 ----这是最终奏效的:

数据库设置中的部分条目:

0 投票
0 回答
722 浏览

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 nn 是以字节为单位的值,这将解决数据被截断的问题。所以我想知道这是否发生在我的案例中,以及它是否会解决它。

因此,我继续编写了一些仅使用光标和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 中运行似乎可以正常工作并返回正确数量的字符。

另请注意,保存工作

0 投票
1 回答
679 浏览

python - 如何使用 pyodbc 连接远程 MS 访问

在我能够通过 freetds 使用 pyodbc 连接到 MS SQL 服务器之前,如何使用 pyodbc 连接到远程 MS Access DB。但是,如果我使用相同的 freetds 配置进行远程访问,'我不会成功。

有什么建议么?

0 投票
1 回答
2816 浏览

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 数据库没有问题)

0 投票
1 回答
608 浏览

database - 为 Netezza 数据库 (nzSQL) 配置 Django

我对 Django 完全陌生(虽然不是 pyodbc),我对数据库设置的工作方式有点困惑。我想走模型路线并配置 settings.py 以连接到具有以下 odbc 配置的 Netezza 数据库:

这是 odbc 实例的样子:

我一生都无法弄清楚如何将其放入 settings.py 文件中。有人可以解释这是如何工作的吗?

PS 这里问了一个类似的问题:unixodbc and netezza ODBC driver issue (Undefined symbol: SSL_connect)但没有一个答案有帮助。

0 投票
1 回答
353 浏览

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.pydev.py它们相关的 .pyc 文件。此外,还有一个settings.pyc没有相应 .py 文件的文件(我假设这是我分割settings.py成单独部分之前的残余。我尝试删除它并syncdb再次执行并得到了这个:

0 投票
1 回答
1026 浏览

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 中进行查询-

它失败并显示以下错误消息 -

我不相信这些错误与此处找到的其他线程有关-

ValueError:解包 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