- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用带有 ADO 对象的 Delphi 7,是否可以从 TADOConnection 对象确定 ODBC 数据库驱动程序?因此检测是否是MS-Access或SQL Server或Oracle等。
程序仅使用 ODBC 数据源的名称连接到数据库,我想确定该数据库是 MS-Access 数据库还是 SQL Server。我想这样做是因为 MS-Access 和 SQL Server 使用不同的 SQL 函数名称将整数转换为字符串。
应用程序构建一个 SQL 字符串,用于检索某些配置对象的版本。它适用于使用 cast()
的 SQL Server,但我也想支持使用 CStr()
的 MS-Access:
SELECT NAME + '_' + CAST(VERSION as varchar) as OBJECT_NAME FROM ANALYSIS // SQL Server
SELECT NAME + '_' + CStr(VERSION) as OBJECT_NAME FROM ANALYSIS // MS-Access
我尝试查看 TADOConnection.Provider,但这两种情况都是 MSDASQL.1
。
if (myqry.Connection.Provider = 'MSDASQL.1') then
strSQL := strSQL + 'cast(' + myfieldname + ' as varchar)' // always goes here..
else
strSQL := strSQL + 'CStr(' + myfieldname + ')'; // ..never to here
我已经查看了所有 TADOConnection 属性,但我开始怀疑这是不可能的。有什么想法可以解决这个问题吗?
最佳答案
ODBC 旨在抽象出服务器的实现细节。您可以use ODBC specific syntax它将被转换为适合服务器的 SQL 风格的语句。在这里你可以替换:
... { fn CONVERT( VERSION, SQL_VARCHAR ) } AS OBJECT_NAME FROM ANALYSIS
这些替换被称为 ODBC Escape Sequences并且可以在存在特定于供应商的语法差异的查询中进行替换。
关于sql-server - 从 TADOConnection 对象确定 ODBC 数据库驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36206241/
我试图了解 Delphi 如何处理作业。我有一个名为 GlobalConn 的全局连接(TADoConnection)... 我有一个使用传入的变量进行数据库调用的函数: function MakeD
使用 D5 中的 TAdoConnection 使用密码 sa 帐户连接到 Windows 7 64 位计算机上的本地 Sql Server,我收到错误“用户 sa 登录失败”,尽管我已经构建了TAd
我已经创建了一个 TCPip 服务器应用程序。该应用程序有一个全局 TADOConnection。此全局 ado 连接既可用于主线程查询,也可用于线程进程内。 这样可以吗? ADOConnection
我正在使用以下连接字符串: ADOConnection1.ConnectionString := 'Driver={MySQL ODBC 3.51 Driver};' +
我需要检测 TAdoConnection 何时出现组件已失去与服务器的连接。我尝试过使用 OnDisconnect事件,但仅当调用 Close 方法或 Connected 属性设置为 false 时才
我有一个带有全局 TADOConnection 的数据模块(默认 KeepConnection 设置为 true)。我现有的应用程序中有大量数据集和查询使用此全局 TADOConnection。 我想
好吧,我的应用程序运行得很好,直到我决定通过创建 DataModule 表单并将所有数据库组件移至其中来稍微清理一下设计时表单。我正在使用 Delphi XE2 Update 1 和这些组件:TADO
我收到了存储在 Variant 中的 native COM ADOConnection。我想将此连接的接口(interface)传递给 VCL 包装器 TADOConnection。问题是我收到无效的
最终答案: 这不是 Delphi 问题,只是配置问题。 我使用Xampp来提供MySql服务器。 C:\xampp\mysql\bin>mysql.exe --version mysql.exe
我正在尝试在 Delphi 7 中编写一个 ADO 数据库分析器。 它是德尔福项目的一部分。 我正在使用 OnExecuteComplete事件,但在某些 PC 上,我收到“MSADO15.DLL”访
使用带有 ADO 对象的 Delphi 7,是否可以从 TADOConnection 对象确定 ODBC 数据库驱动程序?因此检测是否是MS-Access或SQL Server或Oracle等。 程序
TADOConnection.Execute 函数返回一个 _Recordset。 为了简单起见,我目前使用此代码(1): V := ADOConnection1.Execute(SQL).Field
当我在 32 位 delphi 应用程序中运行此代码时,与 MySql 的连接已成功建立。 {$APPTYPE CONSOLE} {$R *.res} uses AdoDb, ActiveX,
我正在尝试使用 TADOConnection 组件与 Oracle 建立数据库连接。我在表单中添加了一个 ADOConnection1。然后我将 Provider 属性设置为“SQLOLEDB”。假设
我是一名优秀的程序员,十分优秀!