PB MS SQL 2000出現10005錯誤,DBPROCESS is dead or not enabled

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux下使用C语言通过FreeTDS读取MSSQL中的数据,需要使用FreeTDS库,并且在连接数据库时设置字符集为UTF-8。以下是一个示例代码,可以读取MSSQL数据库中的数据,并保证无中文乱码。 ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sybfront.h> #include <sybdb.h> #define SQL_RESULT_LEN 1024 int main() { LOGINREC *login; DBPROCESS *dbproc; DBBOOL success; RETCODE retcode; char *server = "your_server_name"; char *user = "your_username"; char *pass = "your_password"; char *database = "your_database_name"; char sql[SQL_RESULT_LEN]; char name[SQL_RESULT_LEN]; char age[SQL_RESULT_LEN]; char address[SQL_RESULT_LEN]; char phone[SQL_RESULT_LEN]; if (dbinit() == FAIL) { printf("Error initializing FreeTDS.\n"); return 1; } login = dblogin(); DBSETLUSER(login, user); DBSETLPWD(login, pass); DBSETLAPP(login, "myapp"); DBSETLVERSION(login, "70"); DBSETLCHARSET(login, "UTF-8"); dbproc = dbopen(login, server); if (dbproc == NULL) { printf("Error connecting to the database.\n"); return 1; } success = dbuse(dbproc, database); if (success == FAIL) { printf("Error selecting database.\n"); return 1; } // 注意:这里的 SQL 语句需要根据实际情况进行修改 sprintf(sql, "SELECT name, age, address, phone FROM your_table_name"); retcode = dbcmd(dbproc, sql); if (retcode != SUCCEED) { printf("Error executing SQL statement.\n"); return 1; } retcode = dbsqlexec(dbproc); if (retcode != SUCCEED) { printf("Error executing SQL statement.\n"); return 1; } while (dbresults(dbproc) != NO_MORE_RESULTS) { while (dbnextrow(dbproc) != NO_MORE_ROWS) { dbbind(dbproc, 1, NTBSTRINGBIND, 0, name); dbbind(dbproc, 2, NTBSTRINGBIND, 0, age); dbbind(dbproc, 3, NTBSTRINGBIND, 0, address); dbbind(dbproc, 4, NTBSTRINGBIND, 0, phone); dbnullbind(dbproc, 1, &name[0]); dbnullbind(dbproc, 2, &age[0]); dbnullbind(dbproc, 3, &address[0]); dbnullbind(dbproc, 4, &phone[0]); dbdata(dbproc, 1, (BYTE *)name, strlen(name)); dbdata(dbproc, 2, (BYTE *)age, strlen(age)); dbdata(dbproc, 3, (BYTE *)address, strlen(address)); dbdata(dbproc, 4, (BYTE *)phone, strlen(phone)); printf("%s\t%s\t%s\t%s\n", name, age, address, phone); } } dbexit(); return 0; } ``` 需要注意的是,在连接数据库时需要设置字符集为UTF-8,具体方法是使用`DBSETLCHARSET`函数,例如: ```c DBSETLCHARSET(login, "UTF-8"); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值