-
张涛
2008-07-18
-
你好,我有个问题请教!<br/>在vc中,<br/>我想用ado的方式连接mysql<br/>网上有人介绍安装odbc驱动,建立数据源,然后连接!<br/>现在我有两个问题:<br/>1. 上面这种方式到底属于ado, 还是odbc连接方式?<br/>2. 如果我不想用上面的方式,想直接连接数据库!该怎么做呢?<br/>注:以前我用ado的方式连接过sqlserver,能不能只修改它连接字符串,从而连接mysql呢?<br/> 非常感谢!<br/>期待你的回答哦!
-
王以山
2008-07-09
-
支持一下!
-
zhengq06
2008-06-21
-
版主您好,我在这个帖子http://topic.csdn.net/u/20080621/12/f71701d8-15e0-4b4e-9b4f-b8bcb391e6f2.html<br/> 上不小心把自已数据库的地址,密码给透露了,麻烦帮我改下啊.<br/><br/> 谢谢,谢谢!!!
-
haohao915
2008-04-27
-
你的图象很可爱!!!
-
沒名字
2007-12-28
-
貌似都没回复过留言
-
沒名字
2007-12-28
-
麻烦再去看看http://topic.csdn.net/u/20071228/10/9f731911-2d2d-4cf8-bb35-ccf858353b4b.html谢谢..
-
lyayfy
2007-12-25
-
高手,谢谢你之前给我的解答,我还想问下以下代码<br/>void Qurey::OnButton2() <br/>{<br/> UpdateData();<br/> CString sSQL;<br/> SYSTEMTIME time; <br/> GetSystemTime(&time); <br/> int year = time.wYear ; <br/> int month = time.wMonth ; <br/> int day = time.wDay; <br/> int price = 0;<br/> _variant_t vField;<br/><br/> CoInitialize(NULL);<br/> _ConnectionPtr pConn(__uuidof(Connection));<br/> _RecordsetPtr pRst1(__uuidof(Recordset));<br/> CString str = "Provider=MSDAORA.1;Password=123456;User ID=liyang;Data Source=orcl;Persist Security Info=True";<br/> pConn->Open(_bstr_t(str),"","",adConnectUnspecified);<br/> sSQL.Format("select * from object where oid = %d",m_oid);<br/> pRst1 = pConn->Execute(_bstr_t(sSQL),NULL,adCmdText);<br/> vField = pRst1->GetFields()->GetItem((long)15)->Value;<br/> price = vField.intVal;<br/> <br/> sSQL.Format("insert into temp values('%s',%d,to_date('18450309','yyyymmdd'))",m_oid,price);<br/> pConn->Execute(_bstr_t(sSQL),NULL,adCmdText);<br/><br/> <br/> // TODO: Add your control notification handler code here<br/> <br/>}<br/>在获得PRICE处就出错,为什么呢!看了几本书,改过来改过去就是不行,是连的ORCLE<br/>还想问下,我前面的三个获得系统时间的变量的用法对吗,有什么办法这三个变量做为日期在INSERT语句中插入到我的另一个表中吗??谢谢了!~~~~~~~~~
-
cjjwxyza
2007-12-16
-
谢谢回复~~<br/>
-
王勇
2007-12-13
-
专家,您好<br/><br/>ExecProc(const CString& strProcName, \\要执行的存储过程名字<br/> long* returnIntfromProc, \\存储过程返回值在VC6中对应的变量<br/> const CString& strInParam, \\传递给存储过程的输入参数<br/> CString& strOutParam) \\存储过程的output参数对应的C 变量<br/>{<br/> // 定义智能指针,并初始化<br/> _ConnectionPtr Conn;<br/> Conn.CreateInstance(__uuidof(Connection))<br/> _CommandPtr cmd;<br/> _RecordsetPtr rsp;<br/> _ParameterPtr returnParam,INParam,OutParam;<br/> try{<br/> cmd.CreateInstance(__uuidof(Command));<br/> rsp.CreateInstance(__uuidof(Recordset));<br/> cmd->ActiveConnection = Conn;<br/> cmd->CommandText = _bstr_t(strProcName); <br/> returnParam=cmd->CreateParameter(_bstr_t("returnParam"),adInteger,adParamReturnValue,sizeof(int));<br/> cmd->Parameters->Append(returnParam);<br/> INParam=cmd->CreateParameter(_bstr_tINParam"),adBSTR,adParamInput,300,(_variant_t)strInParam);<br/> cmd->Parameters->Append(INParam);<br/> OutParam=cmd->CreateParameter(_bstr_t("OutParam"),adBSTR,adParamInput,300);<br/> cmd->Parameters->Append(OutParam);<br/> cmd->Execute(NULL, NULL, adCmdStoredProc);<br/> // 往后的工作是把存储过程的返回值returnParam中的值取到对应的C 变量returnIntfromProc中,<br/> // 把存储过程的返回参数OutParam中的值取到对应的C 变量strOutParam<br/><br/> //怎么做???!!!<br/><br/>// 按照您提供的文章,代码继续如下: <br/> _variant_t result = cmd->Parameters->GetItem("returnParam")->GetValue();<br/> if(result.vt==VT_14)returnIntfromPoc = result.iVal;<br/> result = cmd->Parameters->GetItem("OutParam")->GetValue();<br/> if(result.vt==VT_BSTR)strOutParam = result.bstrVal;<br/><br/>我在VC6中调试该代码段,存储过程调用能够顺利执行,用查询分析器打开过程中的表结构,都按照设想生成了,但下步取return参数产生异常,<br/>而我通过注释掉取return参数的两行,尝试直接读OutPut参数,虽然没有报错,但结果读出的都是"0",而我在查询分析器得到的结果是符合预期的。<br/><br/>请明示,真的急等。。。<br/><br/>
-
王勇
2007-12-13
-
你好,感谢你的回复。但我按照你提供的那篇文章操作似乎有些问题,我整理如下,恳请指出错误<br/><br/>ExecProc(const CString& strProcName, \\要执行的存储过程名字<br/> long* returnIntfromProc, \\存储过程返回值在VC6中对应的变量<br/> const CString& strInParam, \\传递给存储过程的输入参数<br/> CString& strOutParam) \\存储过程的output参数对应的C 变量<br/>{<br/> // 定义智能指针,并初始化<br/> _ConnectionPtr Conn;<br/> Conn.CreateInstance(__uuidof(Connection))<br/> _CommandPtr cmd;<br/> _RecordsetPtr rsp;<br/> _ParameterPtr returnParam,INParam,OutParam;<br/> try{<br/> cmd.CreateInstance(__uuidof(Command));<br/> rsp.CreateInstance(__uuidof(Recordset));<br/> cmd->ActiveConnection = Conn;<br/> cmd->CommandText = _bstr_t(strProcName); <br/> returnParam=cmd->CreateParameter(_bstr_t("returnParam"),adInteger,adParamReturnValue,sizeof(int));<br/> cmd->Parameters->Append(returnParam);<br/> INParam=cmd->CreateParameter(_bstr_tINParam"),adBSTR,adParamInput,300,(_variant_t)strInParam);<br/> cmd->Parameters->Append(INParam);<br/> OutParam=cmd->CreateParameter(_bstr_t("OutParam"),adBSTR,adParamInput,300);<br/> cmd->Parameters->Append(OutParam);<br/> cmd->Execute(NULL, NULL, adCmdStoredProc);<br/> // 往后的工作是把存储过程的返回值returnParam中的值取到对应的C 变量returnIntfromProc中,<br/> // 把存储过程的返回参数OutParam中的值取到对应的C 变量strOutParam<br/><br/> //怎么做???!!!<br/><br/>// 按照沙发提供的文章,代码继续如下: <br/> _variant_t result = cmd->Parameters->GetItem("returnParam")->GetValue();<br/> if(result.vt==VT_14)returnIntfromPoc = result.iVal;<br/> result = cmd->Parameters->GetItem("OutParam")->GetValue();<br/> if(result.vt==VT_BSTR)strOutParam = result.bstrVal;<br/><br/>我在VC6中调试该代码段,存储过程调用能够顺利执行,用查询分析器打开过程中的表结构,都按照设想生成了,但下步取return参数产生异常,<br/>而我通过注释掉取返回参数的两行,尝试直接读OutPut参数,结果读出的都是"0",而我在查询分析器得到的结果是符合预期的。<br/><br/>