odbc 相关问题

开放式数据库连接(ODBC)提供了用于访问数据库管理系统(DBMS)的标准软件接口。

如何测试Oracle ODBC驱动配置连接?

我尝试安装 Oracle instantclient-basic-windows.x64-12.1.0.2.0 和 instantclient-odbc-windows.x64-12.1.0.2.0 我在测试 ODBC 驱动程序配置时收到以下错误...

回答 2 投票 0

有人知道“如何通过ODBC连接Power Bi Cloud版本和Netsuite吗?”

我是Power Bi云版本的新手,我需要将power Bi与Netsuite(版本2018.2)连接。因为我能够使用ODBC连接将Power Bi Deskop与Netsuite连接。但是对于Power bi Cloud版本...

回答 1 投票 0

Excel - 使用单元格值作为传递日期 ODBC SQL PowerQuery

我在这里和这里看到了关于SO的参考帖子。我已尝试论坛的回复,但无法成功运行我的 PowerQuery。 到目前为止,我已将开始日期和结束日期单元格命名为 &...

回答 1 投票 0

无法编辑链接表上的一条记录写入冲突

我们的Access 2010数据库中有一个链接表,后端是SQL Server 2012,通过ODBC连接。该表在单个字段(记录的标识符)上建立索引(唯一、非聚集)。 ...

回答 1 投票 0

使用 PDO ODBC SQL Server 连接时定义编码?

我使用如下方式连接到 SQL Server: $pdo = new PDO("odbc:DRIVER=SQL Server 的 ODBC 驱动程序 17;SERVER=$serverName;DATABASE=$dbName", $username, $password); PDO 实例已创建...

回答 2 投票 0

R - odbc - 如何关闭数据库连接?

我能够很好地建立连接,但是我无法弄清楚如何在完成后关闭连接。 有什么建议吗? if (!require('odbc')) install.packages('odbc') 骗局&l...

回答 2 投票 0

4年后突然出现unixODBC][FreeTDS][SQL Server]无法连接数据源的错误

在过去四年中,我们一直在从共享 Linux 主机到 MS SQL 数据库建立 ODBC 连接,并且运行良好。上周末突然停了。不幸的是,这是

回答 1 投票 0

ODBC SQL Server 驱动程序登录超时已过期

我无法连接到 SQL 服务器 SQLExpress。几天前连接工作正常。 这就是我尝试连接的方式(我正在使用 Microsoft SQL Server Management Studio): 连接 = pyodbc。

回答 3 投票 0

odbc_prepare():SQLColAttribute 无法处理 SQL_DESC_OCTET_LENGTH:[S1C00] [TimesTen][TimesTen 18.1.4.42.0 CLIENT]驱动程序不支持

这是我的connection.php 这是我的连接.php <?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $dsn = 'DSN=demo;Server=demo;UID=demo;PWD=demo'; $conn = odbc_connect($dsn, '', ''); if ($conn) { // Connection successful, proceed with query execution echo "Connection successful.<br>"; // Define the SQL query $sql = "SELECT * FROM employee"; // Ensure this is the correct table name // Prepare and execute the SQL query $stmt = odbc_prepare($conn, $sql); if (odbc_execute($stmt)) { // Get column names $columns = []; $num_fields = odbc_num_fields($stmt); for ($i = 1; $i <= $num_fields; $i++) { $columns[] = odbc_field_name($stmt, $i); } // Print the column names print_r($columns); echo "<br>"; // Fetch and display the results row by row while ($row = odbc_fetch_array($stmt)) { print_r($row); echo "<br>"; } } else { echo "Query execution failed: " . odbc_errormsg($conn); } // Close the connection odbc_close($conn); } else { echo "Connection failed: " . odbc_errormsg(); } ?> 从本地主机每次输出时我都找不到列名 Warning: odbc_prepare(): SQLColAttribute can't handle SQL_DESC_OCTET_LENGTH: \[S1C00\] \[TimesTen\]\[TimesTen 18.1.4.42.0 CLIENT\]Driver not capable in C:\\xampp\\htdocs\\timesten\\test_connection.php on line 20 Warning: odbc_prepare(): SQLColAttribute can't handle SQL_DESC_OCTET_LENGTH: \[S1C00\] \[TimesTen\]\[TimesTen 18.1.4.42.0 CLIENT\]Driver not capable in C:\\xampp\\htdocs\\timesten\\test_connection.php on line 20 Warning: odbc_prepare(): SQLColAttribute can't handle SQL_DESC_OCTET_LENGTH: \[S1C00\] \[TimesTen\]\[TimesTen 18.1.4.42.0 CLIENT\]Driver not capable in C:\\xampp\\htdocs\\timesten\\test_connection.php on line 20 Array ( \[0\] =\> \[1\] =\> \[2\] =\> ) Array ( \[John Doe\] =\> John Doe \[\] =\> 30 \[\] =\> [email protected] ) Array ( \[Jane Smith\] =\> Jane Smith \[\] =\> 25 \[\] =\> [email protected] ) Array ( \[Alice Johnson\] =\> Alice Johnson \[\] =\> 28 \[\] =\> [email protected] ) Array ( \[Bob Brown\] =\> Bob Brown \[\] =\> 35 \[\] =\> [email protected] ) Array ( \[Charlie Davis\] =\> Charlie Davis \[\] =\> 40 \[\] =\> [email protected] ) 我想查看列名称。它总是向我显示这样的“警告:odbc_prepare():SQLColAttribute无法处理SQL_DESC_OCTET_LENGTH:[S1C00] [TimesTen][TimesTen 18.1.4.42.0 CLIENT]驱动程序不支持C:\ xampp \ htdocs imeste

回答 0 投票 0

C# 中的 Redshift 查询超时

我在 AWS 上有一个 Redshift 实例。 我的应用程序在与 Redshift 集群位于同一区域的 EC2 上作为 Windows 服务运行。我有一个查询,平均需要约 45 秒和红移

回答 4 投票 0

为什么可以连接到 mysql,但 SSIS 源 odbc 组件中不显示列?

当我使用 SSIS 上的 odbc 源组件连接到 mysql 数据库时,它可以工作并显示表,但是当我选择表并转到列时,没有显示列。 我有 mysql 连接器网络 8.2 ...

回答 1 投票 0

GO SQL.CONN 总是卡在 conn.Close()

在go中我遇到了一个问题,sql.DB的连接池堆积了如此多的连接,以至于达到了odbc驱动程序的限制。连接应该自动关闭,但这从来没有......

回答 1 投票 0

如何搜索包含子字符串的行?

如果我每次用户提交表单时都在 ODBC 数据库中存储 HTML TEXTAREA,那么用于检索 1) 包含给定子字符串的所有行 2) 不包含给定子字符串的所有行(以及 .. .

回答 3 投票 0

Stata + ODBC 驱动程序需要频繁登录

我必须为 Azure 创建 Windows VM 模板,以便人们可以创建该模板的实例。模板和实例创建得很好,没有问题。 在我已经安装了 Stata 的虚拟机中...

回答 1 投票 0

无法使用VBA从Excel 64位连接到Mysql

我尝试迁移以前在 Windows 10 下使用 32 位 ODBC 驱动程序运行的 Excel 工作表。 看来我的问题并不新鲜,因为我读了几个有关此问题的问题。 我在 Windows 11 下。我运行

回答 1 投票 0

Microsoft ODBC 无法创建有效句柄

我正在使用 Microsoft 的 ODBC 驱动程序将 C++/Linux 应用程序连接到远程运行的 SQL Server 数据库,当我尝试连接到数据库时,调用失败并显示 SQL_INVALID_HANDLE。重新...

回答 5 投票 0

bcp_init 返回访问冲突

我正在尝试使用c++中的odbc在sql server中进行批量复制。 这是我的代码: #包括 #包括 #包括 #包括 #包括 我正在尝试使用 C++ 中的 odbc 在 sql server 中进行批量复制。 这是我的代码: #include <stdio.h> #include <string.h> #include <windows.h> #include <sql.h> #include <sqlext.h> #include <odbcss.h> #include<tchar.h> SQLHENV henv = SQL_NULL_HENV; HDBC hdbc1 = SQL_NULL_HDBC, hdbc2 = SQL_NULL_HDBC; SQLHSTMT hstmt2 = SQL_NULL_HSTMT; void Cleanup() { if (hstmt2 != SQL_NULL_HSTMT) SQLFreeHandle(SQL_HANDLE_STMT, hstmt2); if (hdbc1 != SQL_NULL_HDBC) { SQLDisconnect(hdbc1); SQLFreeHandle(SQL_HANDLE_DBC, hdbc1); } if (hdbc2 != SQL_NULL_HDBC) { SQLDisconnect(hdbc2); SQLFreeHandle(SQL_HANDLE_DBC, hdbc2); } if (henv != SQL_NULL_HENV) SQLFreeHandle(SQL_HANDLE_ENV, henv); } void HandleDiagnosticRecord (SQLHANDLE hHandle, SQLSMALLINT hType, RETCODE RetCode) { SQLSMALLINT iRec = 0; SQLINTEGER iError; WCHAR wszMessage[1000]; WCHAR wszState[SQL_SQLSTATE_SIZE+1]; if (RetCode == SQL_INVALID_HANDLE) { fwprintf(stderr, L"Invalid handle!\n"); return; } while (SQLGetDiagRec(hType, hHandle, ++iRec, wszState, &iError, wszMessage, (SQLSMALLINT)(sizeof(wszMessage) / sizeof(WCHAR)), (SQLSMALLINT *)NULL) == SQL_SUCCESS) { // Hide data truncated.. if (wcsncmp(wszState, L"01004", 5)) { fwprintf(stderr, L"[%5.5s] %s (%d)\n", wszState, wszMessage, iError); } } } #define TRYODBC(h, ht, x) { RETCODE rc = x;\ if (rc != SQL_SUCCESS) \ { \ HandleDiagnosticRecord (h, ht, rc); \ } \ if (rc == SQL_ERROR) \ { \ fwprintf(stderr, L"Error in " L#x L"\n"); \ Sleep(30000); \ } \ } void extract_error( char *fn, SQLHANDLE handle, SQLSMALLINT type) { SQLINTEGER i = 0; SQLINTEGER native; SQLWCHAR state[ 7 ]; SQLWCHAR text[256]; SQLSMALLINT len; SQLRETURN ret; fprintf(stderr, "\n" "The driver reported the following diagnostics whilst running " "%s\n\n", fn); do { ret = SQLGetDiagRec(type, handle, ++i, state, &native, text, sizeof(text), &len ); if (SQL_SUCCEEDED(ret)) printf("%s:%ld:%ld:%s\n", state, i, native, text); } while( ret == SQL_SUCCESS ); } int main() { RETCODE retcode; // BCP variables. char *terminator = "\0"; // bcp_done takes a different format return code because it returns number of rows bulk copied // after the last bcp_batch call. DBINT cRowsDone = 0; // Set up separate return code for bcp_sendrow so it is not using the same retcode as SQLFetch. RETCODE SendRet; // Allocate the ODBC environment and save handle. retcode = SQLAllocHandle (SQL_HANDLE_ENV, NULL, &henv); if ( (retcode != SQL_SUCCESS_WITH_INFO) && (retcode != SQL_SUCCESS)) { printf("SQLAllocHandle(Env) Failed\n\n"); Cleanup(); return(9); } // Notify ODBC that this is an ODBC 3.0 app. retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, SQL_IS_INTEGER); if ( (retcode != SQL_SUCCESS_WITH_INFO) && (retcode != SQL_SUCCESS)) { printf("SQLSetEnvAttr(ODBC version) Failed\n\n"); Cleanup(); return(9); } // Allocate ODBC connection handle, set bulk copy mode, and connect. retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc1); if ( (retcode != SQL_SUCCESS_WITH_INFO) && (retcode != SQL_SUCCESS)) { printf("SQLAllocHandle(hdbc1) Failed\n\n"); Cleanup(); return(9); } retcode = SQLSetConnectAttr(hdbc1, SQL_COPT_SS_BCP, (void *)SQL_BCP_ON, SQL_IS_INTEGER); if ( (retcode != SQL_SUCCESS_WITH_INFO) && (retcode != SQL_SUCCESS)) { printf("SQLSetConnectAttr(hdbc1) Failed\n\n"); Cleanup(); return(9); } // sample uses Integrated Security, create the SQL Server DSN using Windows NT authentication SQLWCHAR dsn[30] = L"mssqltest"; //Name DNS SQLWCHAR user[10] = L"di_test"; SQLWCHAR pass[10] = L"di_test"; SQLWCHAR tb[20]=L"information1"; retcode = SQLConnectW(hdbc1, (SQLWCHAR *)dsn, SQL_NTS, (SQLWCHAR *) user, SQL_NTS, (SQLWCHAR *) pass, SQL_NTS); if ( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) ) { printf("SQLConnect() Failed\n\n"); Cleanup(); return(9); } // TRYODBC(hdbc1, SQL_HANDLE_DBC, retcode); // Initialize the bulk copy. retcode = bcp_init(hdbc1,L"information1", NULL, NULL, DB_IN); if ( (retcode != SUCCEED) ) { printf("bcp_init(hdbc1) Failed\n\n"); Cleanup(); return(9); } //Define our array SQLINTEGER custIDs[] = { 1, 2, 3, 4}; // Bind the program variables for the bulk copy. retcode = bcp_bind(hdbc1, (BYTE *)custIDs[0], 4, SQL_VARLEN_DATA, NULL, (INT)NULL, SQLINT4, 2); if ( (retcode != SUCCEED) ) { printf("bcp_bind(hdbc1) Failed\n\n"); Cleanup(); return(9); } // Could normally use strlen to calculate the bcp_bind cbTerm parameter, but this terminator // is a null byte (\0), which gives strlen a value of 0. Explicitly give cbTerm a value of 1. retcode = bcp_bind(hdbc1, (BYTE *)custIDs[0], 4, SQL_VARLEN_DATA, NULL, (INT)NULL, SQLINT4, 3); if ( (retcode != SUCCEED) ) { printf("bcp_bind(hdbc1) Failed\n\n"); Cleanup(); return(9); } if ( (SendRet = bcp_sendrow(hdbc1) ) != SUCCEED ) { printf("bcp_sendrow(hdbc1) Failed\n\n"); Cleanup(); return(9); } cRowsDone = bcp_done(hdbc1); if ( (cRowsDone == -1) ) { printf("bcp_done(hdbc1) Failed\n\n"); Cleanup(); return(9); } printf("Number of rows bulk copied after last bcp_batch call = %d.\n", cRowsDone); // Cleanup. SQLFreeHandle(SQL_HANDLE_STMT, hstmt2); SQLDisconnect(hdbc1); SQLFreeHandle(SQL_HANDLE_DBC, hdbc1); SQLDisconnect(hdbc2); SQLFreeHandle(SQL_HANDLE_DBC, hdbc2); SQLFreeHandle(SQL_HANDLE_ENV, henv); } 行中: retcode = bcp_init(hdbc1,L"information1", NULL, NULL, DB_IN); 我收到一个异常,提示访问冲突。我没有收到任何错误,但有一个异常。 有谁知道我应该如何解决这个问题? 我在一个 win32 程序中使用 bcp_xxxx 函数已经有 12-15 年了。该程序是在 VS6 上编译的,至今仍在生产中。 我最近在VS2015上重写了项目(终于……)。我也像你一样对 bcp_xxxx 功能有问题。 原始 VS6 程序包含以下文件: #include <sql.h> #include <sqlext.h> #include "C:\Program Files\Microsoft SQL Server\80\Tools\DevTools\Include\odbcss.h" SQLDriverConnect() 函数与包含 Driver=SQL Server 的连接字符串一起使用。 odbcbcp.lib已添加到链接器库列表中。没有问题。 该程序已针对 VS2015 进行了彻底重新审视,将适当的 ODBC 函数更改为 3.x 版本,并允许使用 UNICODE 或 ANSI 字符集的 32 或 64 位二进制文件。 最近的文档建议在使用 sqlncli.h 函数时使用 sqlncli11.lib 标头和 bcp_xxxx: #include <sql.h> #include <sqlext.h> #define _SQLNCLI_ODBC_ #ifdef _WIN64 #include "C:\Program Files\Microsoft SQL Server\110\SDK\Include\sqlncli.h" #else #include "C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Include\sqlncli.h" #endif 我按照建议做了,然后......崩溃了。 然后我链接回odbcbcp.lib,它就像一个魅力。 于是,我开始搜索如何使用sqlncli11.lib,发现ODBC连接字符串应该包含Driver=SQL Server Native Client 11.0。 简而言之: - (1) Driver=SQL Server 与 odbcbcp.lib 有效 - (2) Driver=SQL Server 与 sqlncli11.lib 使 bcp_init() 崩溃 - (3) Driver=SQL Server Native Client 11.0 与 odbcbcp.lib 使 bcp_init() 失败(返回 FAIL=0) - (4) Driver=SQL Server Native Client 11.0 与 sqlncli11.lib 有效。 选项(1)和(4)有效。 但我也发现使用选项(4)可以使查询运行得更快! 所以我会保留最后一张。 希望这有帮助。 之前的答案很完美,将其扩展到 ODBC 13,17 & 18 。 为了使其正常工作,LIB / Include 文件应与所使用的 ODBC 驱动程序匹配。 在 SQLServerClientSDK\ODBC***\SDK 下,其中 *** 是版本( 130 、 170 或 180 )。你会找到 msodbcsqlXX.lib,其中 xx 是 13,17, 18 对于包含文件,请使用 msodbcsql.h 而不是 odbcss.h / odbcinst.h 在连接字符串中,您可以使用 DNS=Name ,系统将检测底层驱动程序信息。 重要的部分是 ODBC 版本与 LIB/Include 文件相同,并且 C++ 代码与正确版本的 LIB 文件链接。 我找不到解决方案的缺点是必须为每个 ODBC 版本编译 dll / exe。 希望这会有所帮助。 谢谢,

回答 2 投票 0

ODBC:错误 [08001] - 尝试在 Power BI 中连接 PostgreSQL

我尝试在 Power BI 中连接托管在 Google Cloud 上的 PostgreSQL 数据库,但没有成功。首先,我在 power bi 中使用本机连接 postgresql,之后尝试与 ODBC 连接,返回一个

回答 1 投票 0

使用 Instant Client 连接到 SQL Server 中的链接服务器 (Oracle)

我需要使用 MS SQL Server (2019) 链接服务器连接到远程数据库 (Oracle)。到目前为止我做了什么: 在 SQL 所在的计算机上安装了 Oracle Instant Client x64 和 ODBC 驱动程序

回答 2 投票 0

[驱动程序管理器]无法打开 lib '/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.9.so.1.1'

当我跑步时 $ python manage.pyspectdb --database=mssql_database 我有以下错误 django.db.utils.Error: ('01000', "[01000] [unixODBC][驱动程序管理器]无法打开 lib '/opt/microsoft/

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.