关于SQL连接数据库的问题,请各位大侠帮帮我

jiuzhoulh 2005-04-09 08:40:33
在我的系统中我想使用远程SQL数据库,但是我不想去设置数据源,而是每次在系统中自动去连接数据库,打开数据库,然后读取数据,插入数据,修改数据等操作;最后关闭连接 。
我找了很揪的相关资料但是没有找到希望各位能帮帮我啊!!!
非常感谢!!!
...全文
101 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiuzhoulh 2005-04-10
  • 打赏
  • 举报
回复
SQLHENV henv;
SQLHDBC hdbc;
SQLHSTMT hstmt;
SQLRETURN retcode;

/*Allocate environment handle */
retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
/* Set the ODBC version environment attribute */
retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
/* Allocate connection handle */
retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
/* Connect to data source */
retcode = SQLConnect(hdbc, (SQLCHAR*) "jz", SQL_NTS,
(SQLCHAR*) "lh", SQL_NTS,
(SQLCHAR*) "jz", SQL_NTS);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
/* Allocate statement handle */
retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
/* Process data */
//**************************************************
SQLCHAR szMAC[MAC_LEN], szIP[IP_LEN];
SQLINTEGER cbMAC, cbIP;
// SELECT the result set and bind its columns to local buffers
unsigned char sql[] = "SELECT MAC FROM DeviceInfo_Tab";
try
{
retcode = SQLExecDirect(hstmt,sql,SQL_NTS);
}
catch(CException* e )
{
int i = 0 ;
}
if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
SQLBindCol(hstmt, 8, SQL_C_CHAR, szMAC, MAC_LEN, &cbMAC);
SQLBindCol(hstmt, 11, SQL_C_CHAR, szIP, MAC_LEN, &cbIP);
}
//**************************************************
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
}
SQLDisconnect(hdbc);
}
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
}
}
SQLFreeHandle(SQL_HANDLE_ENV, henv);



数据源地连接可以成功,但是retcode = SQLExecDirect(hstmt,sql,SQL_NTS);这一句执行没有书库返回,请问这是咋回事啊?
chenqianlong 2005-04-09
  • 打赏
  • 举报
回复
學習中
ropriest 2005-04-09
  • 打赏
  • 举报
回复
将设置数据源的代码写到应用程序的开始(先判断是否有,然后再确定是否创建);对数据库库的操作是需要每次连接,用完后disconnect的,因为同时开多个事务需要耗费数据库的太多系统资源!

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧