急:如何使用 VC 访问 SQL Server(现在就要知道,马上给分)(100分)

  • 主题发起人 主题发起人 JGJ7758521
  • 开始时间 开始时间
J

JGJ7758521

Unregistered / Unconfirmed
GUEST, unregistred user!
如何使用VC 访问 SQL Server 2000的数据?
Delphi中有ADO控件,那么VC中主要用什么控件?
 
引用ADO,或者插入ADO的OCX。
VC和Delphi不一样,差的太多,不要拿Delphi来套VC。
 
能谈一下使用VC 访问SQL Server通常用到的技术与步骤吗?
急,如果好,立即给分.
 
很不方便,三两句所说不清。还是用vs.net 2003吧!
 
//ADO
#pragma warning(disable:4146)
#import "d://Program Files//Common Files//System//ado//msado15.dll" no_namespace /
rename("EOF","adoEOF")
#pragma warning(default:4146)
void main(void)
{
HRESULT hr = CoInitialize(NULL);
if ( hr == 0 )
{
_ConnectionPtr m_pConnection(__uuidof(Connection));
m_pConnection->Open("Provider=SQLOLEDB.1;Data Source=.",
"sa",
"",
adConnectUnspecified);
if(m_pConnection->State){
m_pConnection->Close();
MessageBox( NULL, "Connection Suff", "Suff", NULL);
}
}
}
 
各位辛苦了,不过你们还没明白我的意思.
我只需要知道使用VC 访问SQL Server通常用到的技术与步骤!!!
 
下載來看一看吧.
http://home.pchome.com.tw/club/amlionline/ado.rar
 
呵呵.
#import "f:/program files/common files/system/ado/msado15.dll" /
no_namespace /
rename("EOF","EndOfFile")
_ConnectionPtr piConnection; //定义一个连接变量
在声明的地方加入
//初始化SQLServer数据库
void InitSQLServer(CString server,CString db,CString UserName,CString Pwd)
{
piConnection.CreateInstance("ADODB.Connection");
CString strCn;
strCn.Empty();
strCn="provider=SQLOLEDB;data source="+server
+";initial catalog="+db
+";userID="+UserName
+";Password="+Pwd;
_variant_t bcnstr=_variant_t(strCn);
_variant_t bunstr=_variant_t(UserName);
_variant_t bpwdstr=_variant_t(Pwd);
//打开一个连接
piConnection->Open(_bstr_t(bcnstr),_bstr_t(bunstr),
_bstr_t(bpwdstr),-1);//adOpenUnspecified
}
//执行存贮过程,将值返回
//存贮过程创建于pubs数据库,代码在目录下的test存贮过程.txt中
//
CString ExecStoreProc(int id)
{
_CommandPtr cmd;
cmd.CreateInstance("ADODB.Command");
//id号
_ParameterPtr pParamRk;
pParamRk.CreateInstance("ADODB.Parameter");
pParamRk->Name="job_id"; //存储过程的参数1
pParamRk->Type=adInteger; //整型
pParamRk->Size=2; //
pParamRk->Direction=adParamInput;//表明是输入参数
CString tstr;
tstr.Format("%d",id);
pParamRk->Value=_variant_t(tstr);//int->CString->_variant_t后赋值
cmd->Parameters->Append(pParamRk);
//返回值
_ParameterPtr pParamOk;
pParamOk.CreateInstance("ADODB.Parameter");
pParamOk->Name="desc"; //参数2名称
pParamOk->Type=adChar; //字符串
pParamOk->Size=20; //大小为20个字节
pParamOk->Direction=adParamOutput; //声明是输出参数
cmd->Parameters->Append(pParamOk);
//_variant_t TheValue = MySet->GetCollect("FIELD_1");

//CString sValue=(char*)_bstr_t(TheValue);

cmd->ActiveConnection = piConnection;
cmd->CommandText="test"; //存储过程的名字
cmd->CommandType=adCmdStoredProc;//表示为存储过程adCmdStoredProc
//执行,获得结果
cmd->Execute(NULL, NULL, adCmdStoredProc);
//将值返回
return (char*)_bstr_t(pParamOk->Value);
}
//关闭数据库
也可以操作 RecordSet的.
这中方法使用 ADO COM 原生的接口
 
谢谢各位![:)]
 
后退
顶部