我正在一个在组织范围内集中安装的驱动器上安装了unixODBC的环境中工作,但是我们(实际的开发人员)不允许在其中安装驱动程序或数据源.这都是倒退,但我必须忍受它.
现在,我试图建立从这个UNIX ENVIRO连接到MSSQL 2005服务器Python应用程序,所以我显然需要一些SQL司机!
我绕过我无法进入预装了unixODBC通过重新安装了unixODBC上,我有完全控制驱动器的一部分.我已经安装了freeTDS并配置了所有内容,以便我可以使用isql成功连接到服务器 - 太棒了!
现在唯一的问题是,当我在我的python程序(使用pyodbc)中执行一行时,如:
import pyodbc
pyodbc.connect("DSN=<dsn_name>;UID=...;PWD=...", autocommit=True)
Run Code Online (Sandbox Code Playgroud)
我明白了
('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnectW)')
Run Code Online (Sandbox Code Playgroud)
我认为这是因为pyodbc仍在寻找原始的unixODBC安装,而不是我的本地安装.所以我想知道:
如何配置我的脚本以查找本地unixODBC安装而不是主驱动器上安装的安装
如果我写的东西像
class Chip(models.Model):
name = models.CharField(max_length=16)
shortname = models.CharField(primary_key=True, unique=True, max_length = 16)
def __unicode__(self):
return self.shortname
class ChipStepping(models.Model):
stepping = models.CharField (max_length=16)
ChipShortname = models.ForeignKey('Chip', db_column="ChipShortname")
def __unicode__(self):
return "%s:%s" % (self.ChipShortname, self.stepping)
class ComponentType(models.Model):
name = models.CharField (max_length=32)
ChipStepping = models.ForeignKey('ChipStepping', db_column="ChipStepping")
def __unicode__(self):
return "%s(%s)" % (self.name, self.ChipStepping);
class ComponentVendor(models.Model):
name = models.CharField (unique=True, max_length=16)
products = models.ManyToManyField('ComponentType', through='ComponentVendorProduct', related_name='vendors')
def __unicode__(self):
return "%s" % (self.name)
class ComponentVendorProduct(models.Model):
ComponentVendor = models.ForeignKey('ComponentVendor', db_column="ComponentVendor")
ComponentType = models.ForeignKey('ComponentType' , db_column="ComponentType") …Run Code Online (Sandbox Code Playgroud) python ×2
admin ×1
django ×1
freetds ×1
performance ×1
pyodbc ×1
sql ×1
sql-server ×1
unixodbc ×1