【100分 急求代码】VC连远程SQL Server数据库!

acezlb4 2007-09-08 12:13:02
急求代码。
要求:
1) 可以连接远程数据库(不一定是本机或局域网)
2) 不使用ODBC,不需要在机器上注册dll,或做其他设置
3) 可以执行SQL语句,可以查询
4) 提供完整工程包,控制台程序即可,不要窗口

MSSQL主机:mssql12.ixwebhosting.com
数据库名:acezlb_test1
用户名:acezlb_test1
密码:abc123
表名:testtable
(用企业管理器可以连,您自己另建表也可)

麻烦发到我信箱:acezlb@163.com
只要能完成上述功能立刻给分,多谢!!!

附:
之前网上找的代码,调了半天连接远程数据库连不上,只能连本地或局域网的,不知道哪儿的问题。抓狂中
http://i.duc.cn/testdb.zip
...全文
191 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangge1005 2012-03-26
  • 打赏
  • 举报
回复
我也想要~~~
easyweb 2007-09-08
  • 打赏
  • 举报
回复
我有,发到你信箱了
T97102003 2007-09-08
  • 打赏
  • 举报
回复
已发送
acezlb4 2007-09-08
  • 打赏
  • 举报
回复
【楼主】:
这位达人,执行不成功啊,执行到20行
hr = conn->Open(_bstr_t(szConn), "", "", 0);
报错:
---------------------------
Microsoft Visual C++
---------------------------
Unhandled exception in TestConsoleMFC.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.
---------------------------
确定
---------------------------

麻烦发整个工程的包给我,光帖一段代码我不知道是不是我的工程设置有问题。
VC水平比较菜,见笑。
另外,那个表没有问题,是存在的,不过里面暂时没有记录。
T97102003 2007-09-08
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include "stdio.h"

#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "ADOEOF")

int main(int argc, char* argv[])
{
::CoInitialize(NULL);
_ConnectionPtr conn;
_RecordsetPtr rs;

HRESULT hr = conn.CreateInstance(__uuidof(Connection));
if(FAILED(hr))
{
printf("Create Connection Object fail\r\n");
return 0;
}
char szConn[255] = {0};
sprintf(szConn, "provider=sqloledb.1;user id=acezlb_test1;pwd=abc123;persist security info=false;data source=mssql12.ixwebhosting.com");
hr = conn->Open(_bstr_t(szConn), "", "", 0);
if(FAILED(hr))
{
printf("connect database fail\r\n");
return 0;
}

hr = rs.CreateInstance(__uuidof(Recordset));
if(FAILED(hr))
{
printf("Create Recordset Object fail\r\n");
return 0;
}

rs->CursorLocation = adUseClient;
char szSQl[255] = {0};
sprintf(szSQl, "select * from testtable");
hr = rs->Open(_bstr_t(szSQl), (IDispatch*)conn, adOpenKeyset, adLockReadOnly, 0);
if(FAILED(hr))
{
printf("Get Recordset fail\r\n");
return 0;
}

int count = rs->GetRecordCount();
char temp[128] = {0};
sprintf(temp, "Record count of testtable is %d\r\n", count);
printf(temp);

::CoUninitialize();
return 0;
}

以上代码连接数据库通过, LZ 给的表名无效, 把你的表名改成数据库里有的表, 就可以运行通过.

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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