📄 errorandmsgexample.c
字号:
/***********************************************************************
*
* 案例四、验证从SQL Server中提取数据
*
*
************************************************************************/
#pragma comment(lib, "ntwdblib.lib") //导入非标准的库函数文件
#define DBNTWIN32
#include <stdio.h>
#include <windows.h>
#include <sqlfront.h>
#include <sqldb.h>
PDBPROCESS dbconnect(const char *user, const char *password, const char *dbserver);
// Forward declarations of the error handler and message handler.
int err_handler(PDBPROCESS, INT, INT, INT, LPCSTR, LPCSTR);
int msg_handler(PDBPROCESS, DBINT, INT, INT, LPCSTR, LPCSTR,
LPCSTR, DBUSMALLINT);
int main()
{
PDBPROCESS dbproc; // 与SQL Server的连接结构体指针.
dbproc = dbconnect("sa", "", "127.0.0.1");
if(dbproc == NULL)
{
printf("连接数据库失败\n");
return 0;
}
// 注册错误和消息处理回调函数.
dberrhandle (err_handler);
dbmsghandle (msg_handler);
// 首先将错误的update命令放到命令缓冲区中.
dbcmd (dbproc, "update student set name='zhang'");
dbsqlexec (dbproc); // 发送命令到SQL Server然后开始执行.
dbexit (); // 关闭数据库连接.
return (0);
}
PDBPROCESS dbconnect(const char *user, const char *password, const char *dbserver)
{
PDBPROCESS dbproc; // 与SQL Server的连接结构体指针.
PLOGINREC login; // 登录信息。
dbinit(); // 初始化 DB-Library.
login = dblogin (); //获得LOGINREC.
DBSETLUSER (login, user); //设置数据库登录用户
DBSETLPWD (login, password); //设置数据库登录用户密码
dbproc = dbopen (login, dbserver); //连接数据库
return dbproc;
}
int err_handler (PDBPROCESS dbproc, INT severity,
INT dberr, INT oserr, LPCSTR dberrstr, LPCSTR oserrstr)
{
printf ("DB-Library 错误 %i: %s\n", dberr, dberrstr);
if (oserr != DBNOERR)
{
printf ("操作系统错误%i: %s\n", oserr, oserrstr);
}
return (INT_CANCEL);
}
int msg_handler (PDBPROCESS dbproc, DBINT msgno, INT msgstate,
INT severity, LPCSTR msgtext, LPCSTR server,
LPCSTR procedure, DBUSMALLINT line)
{
printf ("SQL Server 消息 %ld: %s\n", msgno, msgtext);
return (0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -