请教VC下数据库操作的3个问题.

colinchou 2004-08-31 01:29:19

问题1:我不通过DSN连接SQL Server数据库为何老连不上啊??通过数据源一下就连上了??
错误提示是:[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝

问题2:请教高手,我通过下面的方法把文件中的数据导入数据库中为何速度特别慢,有什么更好的方法吗???请多指教;多谢
说明:文件里有10万组数据的时候,也就是要向数据库添加10万条记录的时候大概花了几十分钟时间的

问题3:id字段设为列值自动增加的时候,当表删空记录后,为何不重0开始计数呀,(这里我是自己给id字段计数的)

代码如下:

void CSimulatorView::OnImportData()
{
// TODO: Add your command handler code here
float edit[10];
FILE* pFile;
int id
_variant_t vid
HRESULT hr;

try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Data source=test;UID=;PWD=;","","",adModeUnknown);//连接数据库
//hr = m_pConnection->Open("driver={SQL Server};Server=COLIN\COLINSERVER;DATABASE=test;UID=sa;PWD=sa","","",adModeUnknown);
//说明:这样就连不上,COLIN\COLINSERVER是我建的服务器名,改用ip也试过了还是连不上,上面用数据源连接是可以的。

}
}
catch(_com_error e)//捕捉异常
{
CString errormessage;
errormessage.Format("数据库连接失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);//显示错误信息

}
m_pRecordset.CreateInstance("ADODB.Recordset");//创建Recordset对象的实例


m_pRecordset->Open("SELECT * FROM test ORDER BY id DESC",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
if(!m_pRecordset->adoEOF)
{
vid = m_pRecordset->GetCollect("id");
id = long(vid);

}
else
id = 0;


CString strtemp = _T("E:\\Data\\");
if((pFile = fopen(strtemp+_T("All.")+g_cFileSerial, "r")) == NULL)
{
AfxMessageBox("文件打开失败");
return ;
}
while(!feof(pFile))
{

fscanf(pFile,"%f %f %f %f %f %f %f %f %f %f",&edit[0],&edit[1],&edit[2],&edit[3],&edit[4],&edit[5],&edit[6],&edit[7],&edit[8],&edit[9]);

m_pRecordset->AddNew();//添加新记录

m_pRecordset->PutCollect("id",_variant_t(long(id+1)));
m_pRecordset->PutCollect("a",_variant_t(edit[0]));
m_pRecordset->PutCollect("b",_variant_t(edit[1]));
m_pRecordset->PutCollect("c",_variant_t(edit[2]));
m_pRecordset->PutCollect("d",_variant_t(edit[3]));
m_pRecordset->PutCollect("e",_variant_t(edit[4]));
m_pRecordset->PutCollect("f",_variant_t(edit[5]));
m_pRecordset->PutCollect("g",_variant_t(edit[6]));
m_pRecordset->PutCollect("h",_variant_t(edit[7]));
m_pRecordset->PutCollect("i",_variant_t(edit[8]));
m_pRecordset->PutCollect("j",_variant_t(edit[9]));


m_pRecordset->Update();

id=id+1;

}
fclose(pFile);
m_pRecordset->Close();
m_pConnection->Close();//关闭连接
AfxMessageBox("导入数据成功");
}
...全文
70 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
炎热的夏季已经过去,家乡想必也要开始落叶了。如果我是小学生,让我以《秋》为题目作文,开头一定是“秋天是收获的季节”。是的,经过了春天的骚动,夏季的彷徨,来到了秋。这是新生报到的季节,动物贮藏食物的季节,马上就到十一长假的季节,这个季节更是收获的季节。 我们在播种时,势必首先考虑收成。种庄稼如此,学习语言更是如此。于是,“语言之争”是各个编程论坛必定讨论的话题,很多甚至是“X经”话题。对此,我的观点是:语言没有好坏之分,只有顺手不顺手和你能发挥到什么程度的问题。我们没有必要追求最新,“最先进”的编程方式,只需要学习好力所能及的语言。 VC的无所不能缺点是繁杂,稍有不慎就不知道什么地方出了包;VB常常被人耻笑过于简单,发布之后要带上一个“仓库”;Delphi虽然有快速开发的优势,但却姥姥不疼舅舅不爱的日渐西山…… 其实对于大多数人来说,我们使用什么应该是需求决定而不是语言本身决定需求,比如:我们希望自动根据数据生成表格,没有必要非用Delphi VC 调用 COM ,我们用用VBA就好了。因此,眼中只有那三种基本结构:判断 循环 跳转就差不多了,再高级一点,弄清楚什么是面向对象面向过程,随便一门语言都不会逃出这点东西。 我很佩服俄罗斯的软件,他们就是将语言工具发挥到极致的例子。比如:我在网上搜索到DOS下硬盘速度测试软件,竟然是Pascal编写的。 至于“学习好力所能及的语言”,我的意思是如果你身边有C语言的高手不妨向他请教或者同他切磋;如果你有学好数据结构的理想,不妨买一本Java描述数据结构的图书慢慢啃;如果你有网络数据库+界面的需求不妨考虑一下Delphi…… 因此,我的观点就是“语言没有好坏之分”,关键是你能掌握到什么程度。 当然,如果你能掌握汇编语言,这一切就更不在话下了。我很希望各位能够将学习语言当作乐趣,我们的杂志也将会以如何让读者在阅读中感到快乐感到成就感为目的。

4,018

社区成员

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

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