Articles of odbc

Windows 2003上的ODBC比Windows 7上的慢吗?

我看到一些MSSQL 2005性能问题,我正在尝试诊断原因。 我正在使用SQL事件探查器来收集查询执行时间。 客户端应用程序(使用ODBC)和SQL服务器都在Windows 2003上运行。我还使用Windows 7(客户端)和不同的Windows 2003服务器来比较结果。 Windows 7客户端/ Windows 2003服务器: SQLpipe理工作室:393ms 通过ODBC:215ms Windows 2003客户端: SQLpipe理工作室:约155ms 通过ODBC:3145ms …在这两种情况下,我在客户端上运行SQL Management Studio。 对我来说,这些数字表明Windows 2003服务器上的ODBC客户端有问题。 在Windows上,我看到ODBC“SQL Server”驱动程序的版本是6.01.7600.16385但在Windows 2003上是2000.86.3959.00 (默认)。 这可能是问题吗? 是否有可能更新一个ODBC驱动程序?

你可以在PowerShell中使用SQLite 64位odbc

我已经安装了64位的SQLite的ODBC驱动程序,从这个页面下载。 我在Windows 7上运行PowerShell版本2。 在ODBCconfiguration中,我创build一个名为LoveBoat的系统DSN,指向一个有效的文件。 我没有任何“真实”的应用程序来testingODBC连接是否工作,但是下面的代码是简单的C#程序。 我也希望PowerShell脚本也可以使用它。 下面的testingC#程序运行并打印出预期的数据: using System.Data.Odbc; using System.Data; using System; public class program { public static void Main(string[] args) { OdbcConnection conn = new OdbcConnection(@"DSN=LoveBoat"); conn.Open(); OdbcCommand comm = new OdbcCommand(); comm.CommandText= "SELECT Name From Myfavoritetable"; comm.Connection = conn; OdbcDataReader myReader = comm.ExecuteReader(CommandBehavior.CloseConnection); while(myReader.Read()) { Console.WriteLine(myReader[0]); } } } 但是,以下PowerShell脚本: $x = […]

Postgres ODBC增加32K BLOB限制

有没有办法在Postgres ODBC驱动程序中增加32K的BLOB字段的限制?

通过ODBC限制访问仅限模式视图SQL 2008

对于SQL安全来说,我相当绿色,所以也许有人可以帮助我。 我们有一个数据库应用程序,安装时默认授予数据库中所有表的公共angular色访问权限。 当你创build一个SQL用户时,它将用户添加到公共angular色中,所以新用户将有权访问所有表。 我们需要将第三方ODBC应用程序连接到数据库。 我们创build了一个从同一个数据库中的表中拉出的视图,我们希望连接只能访问创build的视图。 我们决定使用模式来应用安全性,而不是试图从所有表中删除公共angular色。 所有的默认表都在SCHEMA1 。 我们把VIEW放在SCHEMA2下,创buildUSERA拒绝SELECT到SCHEMA1 ,并把SELECT授予SCHEMA2 。 两个SCHEMAS都拥有相同的所有者。 当我使用AccesstestingODBC并尝试打开VIEW ,收到以下错误 对象(SCHEMA1中的表名)上的SELECT权限被拒绝…. 我认为这是因为我拒绝了SELECT到SCHEMA1 ,它保存了VIEW的引用表。 如果是这样的话,你将如何通过ODBC来限制对特定表的访问? 在我发布这篇文章之后,我开始search更多关于从架构中撤消公共angular色权限的一个可能选项,但没有经过testing,但也遇到了“应用程序angular色”。 我仍然需要再读一点,但是想知道这是否是我应该前进的方向。

每个数据库调用System.Data.Odbc.OdbcConnection.Open()需要一秒钟

我的经验是使用LAMP堆栈,而不是使用.NET在Windows上,但我已经被赋予了试图debugging一个缓慢的网站的任务,我经过谷歌search我能想到的所有东西后,跑到了死胡同。 这就是问题: 每次将一个SQL调用发送到数据库时,连接需要大约1秒的时间。 我想指出,它从来没有错,只是需要很长的时间。 该框运行Win 2008 R2与大量的CPU和内存,IIS 7.5和数据库是本地MySQL 5.1.66。 在web.config的connectionStrings标签里面 <add name="nameOfConnectionString" connectionString="Driver={MySQL ODBC 5.1 Driver}; Server=localhost; Database=db_name; Pooling=True; Option=3; User ID=user_name; PASSWORD=pw;" providerName="System.Data.Odbc" /> 作为一个说明,我已经尝试过和没有合并到相同的效果 可以肯定的是,我今天已经从mysql网站安装了ODBC 5.1驱动程序。 我也已经远程login到MySQL Workbench,并且运行一些查询,所有的执行时间都是他们应该在的地方,所以我敢肯定它不是mysql安装的问题。 试图解决这个问题的下一步应该是什么? 我可以找什么? UPDATE 当connectionString中的localhostreplace为方框的全局ip地址时,问题就解决了。 什么会导致localhost的名字查找一秒钟?

网站间歇性地断开与数据库的连接

经常我们的网站失去了连接到SQL服务器,我收到以下错误: “以下错误:build立连接时发生networking相关或特定于实例的错误。” “以下错误:从服务器接收结果时发生传输级错误(提供程序:TCP提供程序,错误:0 – 信号量超时期已过)” “到SQL Server,找不到服务器或无法访问服务器,请validation实例名称是否正确,并将SQL Serverconfiguration为允许连接。 “以下错误:超时已过期,从池中获取连接之前已超时,可能发生这种情况是因为所有连接池都在使用中,并且已达到最大池大小。 连接丢失通常在深夜或非常早的时候随机发生。 它将失去连接正好10分钟,然后重新连接,一切都很好。 白天很less有我们失去联系。 我们使用IIS6托pipe我们的网站,并有一个单独的数据库服务器与SQL Server 2005和最新的服务包。 先谢谢了。

从Active Directory执行ODBC系统DSN

2008R2 Active Directory,工作站是Win7 Ent,Office / Excel 2013,Oracle 11.2。 Excel使用系统DSN从Oracle获取数据。 我在哪里可以将ODBC系统DSN放在Active Directory中? 我是否需要对Win7 / Excel 2013做任何特殊的事情,以便它可以从AD获取系统DSN而不是在本地? 谢谢,

文件DSN中的Failover_Partner连接不起作用

我有一个应用程序使用文件DSN连接到中央数据库服务器。 此数据库服务器镜像到辅助服务器上,如果发生故障切换,我的理解是在文件DSN“Failover_Partner =”中添加一行可以使应用程序自动连接到辅助服务器。 但是,这似乎并不奏效。 以下是应用程序服务器上的DSN内容。 [ODBC] DRIVER = SQL Server Native Client 10.0 UID = “用户名” failover_partner =“辅助服务器” networking= DBMSSOCN DATABASE =“数据库名称” APP =微软开放数据库连接 SERVER =“主服务器” 我已经testing了数据库的故障转移,我们的一些应用程序使用连接string与在其app.config或web.config文件中指定的故障转移伙伴都没有问题。 他们自动拿起辅助服务器并继续工作。 他们使用相同的数据库和相同的用户名,所以我知道这不是一个权限问题。 继续工作的应用程序在不同的子网上,因此我知道这不是networking问题。 我可以使用正确的用户名/密码在SSMS中手动连接到相关数据库。 我在这里亏本 我找不到任何理由,为什么这不应该工作。 我只能假设DSN出了问题,但我不知道它是什么,只有在需要使用故障转移伙伴时才会失败。 当我启动的应用程序和小学可用,它的罚款。

无法在Windows上创buildMySql 64位系统DSN

我有一个非常类似的问题,“ 无法创build系统DSN ”,但没有任何修复build议有为我工作。 系统:Windows 7 64位企业版。 我试图创build一个DSN使用从PowerShell中访问MySQL。 当我打开%windir%\system32\odbcad32.exe (默认的64位ODBCpipe理员)并单击系统DSN选项卡时,它会发出警告 “您使用非pipe理权限login系统DSN无法创build或修改”我是系统上的唯一pipe理员,并且在发生这种情况时以pipe理员身份login。 我也尝试通过右键单击以pipe理员身份运行,启动ODBCpipe理员,结果相同。 这是我迄今为止所尝试的: 已经检查了HKLM/software/odbc的权限 在这里尝试过build议 尝试运行WoW64 32位版本的ODBC %windir%\SysWOW64\odbcad32.exe ,这将允许我点击系统DSN选项卡,并从那里添加了一个32位的MySQL系统DSN,我可以做的FWIW没有右键单击以pipe理员身份运行。 关于ODBC的大文章在这里 我想现在我会使用32位系统DSN,但是如果有人能够帮忙的话,使用64位将会很好。

IBM的iSeries ODBC驱动程序在通过isql或其他方式调用时不会发送任何stream量,从而导致 和错误:无法SQLConnect

注意:我已经用示例replace了IP地址,数据库名称和服务器用户。 这不应该影响任何东西。 安装程序 我已经安装了unixODBC( yum install unixODBC )和IBM的官方iSeries ODBC驱动程序( yum install ibm-iaccess-1.1.0.5-1.0.x86_64.rpm ,从IBMlogin区域下载的RPM)。 安装成功将驱动程序添加到/etc/odbcinst.ini : [IBM i Access ODBC Driver] Description = IBM i Access for Linux ODBC Driver Driver = /opt/ibm/iaccess/lib/libcwbodbc.so Setup = /opt/ibm/iaccess/lib/libcwbodbcs.so Driver64 = /opt/ibm/iaccess/lib64/libcwbodbc.so Setup64 = /opt/ibm/iaccess/lib64/libcwbodbcs.so Threading = 0 DontDLClose = 1 UsageCount = 1 [IBM i Access ODBC Driver […]