📄 subject_51638.htm
字号:
<p>
序号:51638 发表者:lin 发表日期:2003-09-03 09:59:50
<br>主题:SQL开发入门请教!!!!
<br>内容:Win2000 Advance Server的机子上安装了SQL2000,服务器运行,可进行相关操作<BR>在SQL2000中建立了新的数据库和登录(User:TempID;Password:1234),使用正常<BR><BR>在VC++60中使用ADO进行数据库编程,使用如下语句连接数据库,未成功<BR>_ConnectionPtr m_pConnection;<BR>AfxOleInit();<BR>m_pConnection.CreateInstance(__uuidof(Connection));<BR>CString strConnection = "Provider=SQLOLEDB.1;Data Source=LIN;Initial Catalog=crrp;UserID=TempID;PWD=1234";<BR>try <BR>{ <BR>m_pConnection->Open((_bstr_t)strConnection,"","",adModeUnknown);<BR>}<BR>catch(_com_error e)<BR>{<BR>AfxMessageBox("数据库连接失败!");<BR>return FALSE;<BR>} <BR>//数据库服务允许正常,程序与服务器在同一机器上<BR>//总是提示登录失败,不知错在什么地方,参考过网上的一些例子,都是这么写的<BR>//请大侠们看看,谢谢!!!!!!!!!<BR><BR>以前曾使用ADO操作过ACCESS等其它数据库,觉得与SQL开发有很大区别,象access等数据库都是对其的某个文件进行操作,而SQL好像并没有什么独立的文件,不知该怎样理解?请大侠们简单解释!!!!<BR><BR>谢谢!!!<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:木一 回复日期:2003-09-03 10:11:01
<br>内容:使用ADO ,有没有初始化COM库?<BR>如果没有,你可以在InitInstance里面调用AfxOleInit()
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lin 回复日期:2003-09-03 10:21:03
<br>内容:有初始化的!!先谢过!!!<BR><BR>有没有操作SQL数据库的简单例子,给一个!!作简要说明即可!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:ax 回复日期:2003-09-03 10:24:27
<br>内容:_ConnectionPtr m_pConnection;<BR>CoInitialize(NULL); // 初始化com库<BR>HRESULT hr = m_pConnection.CreateInstance(__uuidof(Connection));<BR>if(FAILED(hr))<BR> return;<BR>CString strConnection = "Provider=SQLOLEDB.1;Data Source=LIN;Initial Catalog=crrp;UserID=TempID;PWD=1234";<BR>try <BR>{ <BR>m_pConnection->Open((_bstr_t)strConnection,"","",adModeUnknown);<BR>}<BR>catch(_com_error e)<BR>{<BR>AfxMessageBox("数据库连接失败!");<BR>return FALSE;<BR>} <BR>CoUninitialize(); // 卸载com库<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lin 回复日期:2003-09-03 11:16:16
<br>内容:还是不行!<BR>3楼的代码跟我的没有什么区别啊?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lin 回复日期:2003-09-04 16:01:10
<br>内容:怎么没下文啦!!!!<BR><BR>哪位高手帮帮忙啊!!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:ax 回复日期:2003-09-05 08:53:14
<br>内容:TempID是数据库的login,看他在数据库crrp里有没有对应的数据库用户,如果没有创建。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lin 回复日期:2003-09-05 16:12:54
<br>内容:ax你好,不是很明白你的意思!<BR>TempID是我在 SQL SERVER ENterprise Manger中 安全性/登录 下建立的<BR>你的意思是不是在 默认的数据库下的“用户” 中建立一个相同的用户;还是别的什么意思???<BR><BR>我试着建立这样一个“用户”,输入TempID后,系统提示“该用户名已存在”;<BR>再用程序连接,还是连接错误。<BR><BR>真是郁闷,为什么???<BR><BR>能不能简单讲一下你的操作步骤?<BR>从在SQL建立一个新的数据库到VC++程序连接该数据库!!!<BR><BR>谢谢啦!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:ax 回复日期:2003-09-05 16:33:37
<br>内容:CString strConnection = "Provider=SQLOLEDB.1;Data Source=LIN;Initial Catalog=crrp;UserID=TempID;PWD=1234";<BR>这句话中是LIN数据库服务器名,crrp是数据库名,检查是否存在crrp数据库,不存在重新指定数据库名;<BR>TempID是数据库登陆名,一般在建登陆名时默认数据库是master,所以TempID是可以访问master的,你把crrp改为master,一定是可以的,如果你一定要访问crrp也可以,但您必须在crrp中建立一个用户,用户的登陆名是TempID,该用户默认是public角色,他对数据库只读,如果你想可以读写,建表等,你可以设他为db_owner角色,一切配置好后,你可以使用3楼的代码侧一下,一定是可以的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lin 回复日期:2003-09-08 13:58:41
<br>内容:首先谢谢你的解答!!!!<BR><BR>master是安装哪SQL2000就有的,建立一个新的登入,默认的数据库是master,这应该不会错!用了你上面的代码,还是“提示链接数据库失败”!到底是什么原因???<BR><BR>就这么几个简单的步骤,再加上你测试过的代码!!问题在哪?<BR><BR>SQL服务管理器也已运行(在任务栏有一小图标)!!应该运行这个后就可以了吧?还是需要进行其它设置!!!<BR><BR>你一般什么时候上网,有QQ号吗?这样请教方便一些,在这里,一条条的写太慢了!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:痴心绝对 回复日期:2003-09-08 17:21:06
<br>内容:SQL SERVER的密码运算方法不对<BR>你的密码是1234<BR><BR>在SQL2000中建立了新的数据库和登录(User:TempID;Password:1234),的密码就会不对<BR><BR>在应用程序里面的文件密码是4132<BR><BR>你试一下,,应该是这个问题<BR><BR><BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:痴心绝对 回复日期:2003-09-08 17:24:37
<br>内容:也就是说在<BR>SQL SERVER 里面的密码是1234<BR><BR>但是通过运算在,应用程序里面应该是4132
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lin 回复日期:2003-09-09 12:59:00
<br>内容:还是不行!<BR>密码有什么转换?????
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:痴心绝对 回复日期:2003-09-10 08:51:36
<br>内容:SQL SERVER的密码是换算的<BR><BR>也就是要交换位置的,<BR>你在应用程序里面应该有一个*.ini文件吧,以下这些内容应该就是里面的:<BR>_ConnectionPtr m_pConnection;<BR>AfxOleInit();<BR>m_pConnection.CreateInstance(__uuidof(Connection));<BR>CString strConnection = "Provider=SQLOLEDB.1;Data Source=LIN;Initial Catalog=crrp;UserID=TempID;PWD=1234";<BR>try<BR>然后你的服务器上也有相同的文件吧<BR>你把你服务器上的文件考过来,再把要改的东西改掉<BR>对了,你把你在SQL SERVER上的密码贴出来<BR>我来帮你试一下, <BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lin 回复日期:2003-09-10 13:47:10
<br>内容:先谢谢你的回答!!!<BR>我的程序中没有*.ini文件<BR>SQL SERVER的密码就是 1234<BR><BR>其实我认为我只是进行了一个很小的操作,在SQL中建立了一个数据库,然后用VC编程来连接和操作!!!!<BR>仅此而已!!!为什么会不行,真是不解???<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:希望的田野 回复日期:2003-09-11 23:37:42
<br>内容:我好象也遇到过,你新建一个空文件,将扩展名改为.UDL,再双击打开,就会出现定义数据源,选好后,再用记事本打开,会发现多一段,生成的DSN如下:<BR>Provider=SQLOLEDB.1;Persist Security Info=True;Data Source=LIN;Initial Catalog=crrp;UserID=TempID;PWD=1234<BR>你改一下再试试,应该就连的上了.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lin 回复日期:2003-09-12 10:04:57
<br>内容:谢谢 希望的田野!!!<BR>按照你的步骤我终于连接上了,能读可写!!!但仍有些疑问,请你解答!!!<BR><BR>我先建立了一个txt文件,把它的后缀名改成UDL,双击打开,就需要选择数据源。<BR>问题1:这时的数据源来自控制模板中的"ODBC数据源",我先在SQL2000中建立一个数据库,然后在"ODBC数据源"中注册这个数据库.这与我想象中的不太一致,这样的话与“SQL服务器”关系就不大了,在操作中我不运行“SQL服务器”也可以,不知你们的操作是不是这样,还是我的有问题???<BR><BR>再把文件改回成txt,得到的DSN如下:<BR>Provider=MSDASQL.1;Data Source=MSSY;Initial Catalog=crrp;Password=1234;Persist Security Info=True;User ID=TempID<BR>它们的排列顺序无关,我比较了一下与原来的异同,好像Provider=MSDASQL.1;Data Source=MSSY不一样;MSSY是我在ODBC数据源中注册时得到的名称(而LIN是我的SQL服务器的名字)。<BR>问题2:我始终觉得这样的操作与操作SQL有些区别,不知你们这样!!!<BR><BR>谢谢大家的指导!!!!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lin 回复日期:2003-09-12 10:38:46
<br>内容:我将连接的DSN改成如下,连接也成功:<BR>Provider=SQLOLEDB.1;Data Source=LIN;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=crrp<BR><BR>但我没有指定用户名和密码,也没有运行SQL服务器?<BR><BR>还有15楼的朋友,用你的方法,在用“指定的用户名和密码”测试连接数据库时,始终不成功,只好用另一项,所以活动的DSN中没有用户名和密码。<BR><BR>谢谢!!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:希望的田野 回复日期:2003-09-13 22:18:52
<br>内容:我也是初学,也不是太懂,我估计生成的不一样是因为你的SQL服务器设置的用户验证方式不一样吧,我的服务器设置为SQL用户验证,每次输入用户名密码测试都是通过的.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xysong 回复日期:2003-09-14 18:48:58
<br>内容:你其实用你最初的代码就行,只是要加上:<BR>#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lvlangzaiye 回复日期:2003-09-16 13:17:58
<br>内容:SQL 连接不上怎么办?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -