ADO连接数据库创建一个表.

wangyu_hn 2004-11-24 11:39:41
我创建一个connection对象,连接,打开数据库,然后执行建表函数.结果没效果.程序调试没有错误和警告
但我运行程序后,点击"确定"按钮,出现个错误的对话框.对话框错误
Runtime Error!
Progerm:E:\test\ADo\one\Debug\one.exe
abnormal program termination
...全文
262 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lasery 2004-11-26
  • 打赏
  • 举报
回复
CoInitialize()改为CoInitializeEx()
wangyu_hn 2004-11-25
  • 打赏
  • 举报
回复
关闭了.我在创建表的语句后面就关闭了
wangyu_hn 2004-11-24
  • 打赏
  • 举报
回复
那位发现错误再哪里了么?
wangyu_hn 2004-11-24
  • 打赏
  • 举报
回复
我调试了一下,连接数据库是可以连接通的.但是到了m_pConnection->Execute这里有错..
郁闷....
kingzai 2004-11-24
  • 打赏
  • 举报
回复
//TRY this code:
CString strSRC;
CString strSQL;
strSRC="Driver=SQL Server;Server=";
strSRC+="192.168.0.202";//IP地址
strSRC+=";Database=";
strSRC+="dbtest";//
strSRC+=";UID=SA;PWD=";//用户名和密码

strSQL="create table mytesttable(name char(10),age int,address char(20))";

 _variant_t varSRC(strSRC);
_variant_t varSQL(strSQL);
 _bstr_t bstrSRC(strSRC);

 if (FAILED(pConn->Open(bstrSRC,"","",-1)))
 {
AfxMessageBox("Can not open Database!");
pConn.Release();
return;
 }

 COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);

 pConn->Execute(_bstr_t(strSQL),&vtOptional,-1);

 pConn.Release();
rezood 2004-11-24
  • 打赏
  • 举报
回复
应该在ODBC里定义DSN为TEST连接到数据test
rezood 2004-11-24
  • 打赏
  • 举报
回复
m_pConnection->Open("DSN=test;UID=sa;PWD=;","","",adModeUnknown);
就OK了,DSN后面是ODBC里面定义的DSN名
waterpub 2004-11-24
  • 打赏
  • 举报
回复
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test;UID=sa;PWD=;","","",adModeUnknown);
wangyu_hn 2004-11-24
  • 打赏
  • 举报
回复
void COneDlg::OnOK()
{
::CoInitialize(NULL);
m_pConnection.CreateInstance("ADODB.Connection");
try
{
m_pConnection->Open("Data Source=test;UID=sa;PWD=;","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败~");
}
_variant_t RecordsAffected;
m_pConnection->Execute("CREATE TABLE users(ID INTEGER,usernaeme TEXT,old INTEGER,birthday DATETIME)",&RecordsAffected,adCmdText);
m_pConnection->Close();
::CoUninitialize();
CDialog::OnOK();
}
这个是我的确定按钮的代码.里面的m_pConnection->Open是通过odbc打开数据库.这里没有错误吧?我怀疑这

很奇怪,如果我吧这个代码放在,对话框类的oninitdialog函数中,程序运行没有错误,但是数据库里面也没有创建表啊.
oyljerry 2004-11-24
  • 打赏
  • 举报
回复
ExitInstance 中是否关闭pConnection
gooyan 2004-11-24
  • 打赏
  • 举报
回复
下面得SQL中改为
create table

1.stdafx.h中加入
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2。app文件的InitInstance中加入
if(S_OK!=OleInitialize(NULL))
{
AfxMessageBox("初始化COM组件库错误");
}


下面就是数据库操作
_ConnectionPtr pConn;
_RecordsetPtr pRs;
CString strSQL;
pConn.CreateInstance(__uuidof(Connection));
pConn->CursorLocation=adUseClient;
strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
pConn->Open(_bstr_t(strSQL),"","",-1);

pRs.CreateInstance(__uuidof(Recordset));
pRs->CursorLocation=adUseClient;
pRs->PutActiveConnection(pConn.GetInterfacePtr());

pRs1.CreateInstance(__uuidof(Recordset));
pRs1->CursorLocation=adUseClient;
pRs1->PutActiveConnection(pConn.GetInterfacePtr());

strSQL="select * from catalog order by cataid";
pRs->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);

wangyu_hn 2004-11-24
  • 打赏
  • 举报
回复
看来这个帖子还结不了了...


郁闷中...
baby2003627 2004-11-24
  • 打赏
  • 举报
回复
你用m_pRecordset->Open("CREATE TABLE......................................)
建表试一试!
wangyu_hn 2004-11-24
  • 打赏
  • 举报
回复
我操~(原谅我说粗话),还是原来的错误.我听了楼上的.还是跟以前一样的错误,没有任何进展.
oyljerry 2004-11-24
  • 打赏
  • 举报
回复
把m_pConnection放到InitDialog中
在按钮中用m_pConnection->Execute()
Create 表看看
wangyu_hn 2004-11-24
  • 打赏
  • 举报
回复
再顶一下...问题出在哪里.高手有没有?
Martin_personal 2004-11-24
  • 打赏
  • 举报
回复
SQL str 有问题吧
wangyu_hn 2004-11-24
  • 打赏
  • 举报
回复
我调试程序发现.m_pConnection->Execute有错误提示对话框.错误提示是:microsoft visula c++

unhandled execpetion in one.exe(KERNEL32.DLL):0xEO6D7363:Microsoft
C++ Execption

4,018

社区成员

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

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