请教delphi使用ADO连接数据库失败原因

请教delphi使用ADO连接数据库失败原因,第1张

这个问题可以考虑两方面的情况:

第一,你的sql2000没有打sp3或以上的补丁;

第二,你的sql没有设置账号登陆,可以在(local)(windows

nt)上右键-属性-安全性-选上(sql

server和windows)-确定

问题应该就可以解决了……

连接打开数据库和查询数据库都要加异常捕获代码,因为数据库在连接的时候可能连接不上,就不能进行后面的查询工作,否则就会报错,如果查询一个不存在的表都会出问题,所以要加异常捕获,避免出现错误时程序非法 *** 作,增加代码容错机制。

修改代码见下,运行时可以看看代码提示什么错误,出错原因主要可能是数据库连接不上或查询错误表。

if(!SUCCEEDED(CoInitialize(NULL)))

MessageBox("FAILED")

_ConnectionPtr pConn(__uuidof(Connection)) _RecordsetPtr pRst(__uuidof(Recordset))

pConn->ConnectionString = "Provider=Microsoft.ACE.OLEDB.16.0Data Source=Test.accdbJet OLEDB:Database Password=123Persist Security Info=False"

try{

pConn->Open("","","",-1)

}

catch (_com_error e)

{

AfxMessageBox(e.Description())

return

}

try{

pRst = pConn->Execute("select * from tb_UserInfo", NULL, adCmdText)

while(!pRst->adoEOF)

{

((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRst->GetCollect("username"))

pRst->MoveNext()

}

}

catch (_com_error e)

{

AfxMessageBox(e.Description())

return

}

pRst->Close()

pConn->Close()

pRst.Release()

pConn.Release()

CoUninitialize()

导入命名空间using System.Data,Sqlclientstring ConnStr="server=.database=NewsDatauid=sapwd=123"string SQL_STRING="select * from news"database连接的是数据库名称;uid是用户名;pwd是登陆密码;1,创建一个连接实例SqlConnection conn = new SqlConnection(ConnStr);2.打开连接conn.open()3。创建执行命令实例SqlCommand cmd=new SqlCommand(SQL_STRING,conn)4,创建只进读取数据对象SqlDataReader sdr = cmd.ExecuteReader()5,读取数据

if (sdr.Read())

{

t_colname.Text = sdr["new_Name"].ToString()

t_colwords.Text = sdr["new_Des"].ToString()

}6.关闭连接

sdr.Close()

conn.Close()

这是一个实例,希望通过这个你可以了解一下 ,在这里涉及到了ADO.NET的3个对象


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10701392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存