mfc程序用ADOX连接SqlServer的问题

tengyisong 2009-09-17 08:38:18
我看的是安装Office时自带的Microsoft ActiveX数据对象2.5(ADO)其中的内容—目录如下:
ADO程序员参考
->ADOX API参考
->ADOX代码范例
->Microsoft Visual C++中的ADOX代码范例
我看了其中关于创建新表的代码基本上都是这样的:

_CatalogPtr m_pCatalog = NULL;
_TablePtr m_pTable = NULL;
try
{
TESTHR(hr = m_pCatalog.CreateInstance(__uuidof(Catalog)));
//Open the catalog
m_pCatalog->PutActiveConnection(
"Provider='Microsoft.JET.OLEDB.4.0';" \
"data source='c:\\Program Files\\Microsoft Office"
"\\Office\\Samples\\Northwind.mdb';");

TESTHR(hr = m_pTable.CreateInstance(__uuidof(Table)));
m_pTable->PutName("MyTable");
m_pTable->Columns->Append("Column1",adInteger,0);
m_pTable->Columns->Append("Column2",adInteger,0);
m_pTable->Columns->Append("Column3",adVarWChar,50);
m_pCatalog->Tables->Append(_variant_t((IDispatch *)m_pTable));

这个应该是在Access中创建新表MyTable的,而我现在想在SqlServer中我建好的数据库ImageDB中新建这样一个表,该如何做呢?只改Provider和data source我试过了,不行的~
还有就是为什么我的程序中定义以下几个变量用的方式不一样呢?

_ConnectionPtr m_pConnection = NULL;
_RecordsetPtr m_pRecordset=NULL;
_CommandPtr m_pCommand=NULL;
ADOX::_CatalogPtr m_pCatalog=NULL;
ADOX::_TablePtr m_pTable=NULL;

定义_ConnectionPtr类型,_RecordsetPtr类型,_CommandPtr类型不需要ADOX::就可以了,而_CatalogPtr类型,_TablePtr类型的必须要加ADOX::才行,否则编译时就提示说无法识别的类型~
请高手赐教~
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tengyisong 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tr0j4n 的回复:]
SqlServer

Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=数据库名;User ID=sa;Password=12345;

这样写
[/Quote]
user ID和Password如何获知啊?我看了SqlServer自带的数据库,就是不明白~能否具体说明下啊?比如自带的pubs数据库,看哪项可以知道访问这个数据库需不需要User ID及密码啊???
MoXiaoRab 2009-09-17
  • 打赏
  • 举报
回复
SqlServer

Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=数据库名;User ID=sa;Password=12345;

这样写
MoXiaoRab 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 feilinhe 的回复:]
"data source='c:\\Program Files\\Microsoft Office"
                "\\Office\\Samples\\Northwind.mdb';");
应该是
"data source='c:\\Program Files\\Microsoft Office"+
                "\\Office\\Samples\\Northwind.mdb';");

[/Quote]

他那个是对的,有\的,这个就代表换行了
tengyisong 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 feilinhe 的回复:]
"data source='c:\\Program Files\\Microsoft Office"
                "\\Office\\Samples\\Northwind.mdb';");
应该是
"data source='c:\\Program Files\\Microsoft Office"+
                "\\Office\\Samples\\Northwind.mdb';");

[/Quote]
那是微软的帮助文档中这样写的,这是小问题~我想知道的是换成Sqlserver数据库后data source该如何写呢?Sqlserver中每个数据库都对应两个文件呢(×mdf和×ldf)~
feilinhe 2009-09-17
  • 打赏
  • 举报
回复
"data source='c:\\Program Files\\Microsoft Office"
"\\Office\\Samples\\Northwind.mdb';");
应该是
"data source='c:\\Program Files\\Microsoft Office"+
"\\Office\\Samples\\Northwind.mdb';");

4,011

社区成员

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

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