把你上面这些代码放到try里面,下面cath(_com_error &e){TRACE(e.desc" />
乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 如何在<em>MFC</em>中用<em>ADO</em>连接SqlSe

如何在<em>MFC</em>中用<em>ADO</em>连接SqlSe

作者:乔山办公网日期:

返回目录:excel表格制作




把你上面这些代码放到try里面,下面cath(_com_error &e){TRACE(e.description());}

这样就能看到具体是为什么失败了
如果你用的是ado的话

先创建一个database

然后使用recordset

然后执行相关sql语句就行(针对select)

如果运行的语句是没有返回结果的话,就不需要使用recordset

这里有些记录 虽然不是很详细

http://user.qzone.qq.com/415431019/blog/1264583610

把excel当做数据库,做个连接就可以操作了
如用ado方法:在delphi中加入adoconnection控件,双击后选择e799bee5baa6e997aee7ad94e78988e69d83332jet 4.0 ole db,在连接页中
选择数据库的名字(.xls),再双击全部(all)页中的Extended Properties,在value中
填入Excel 8.0,OK!
在控件ADODataSet1的CommandText属性中选择了select * from Sheet1$后,别忘了在
Sheet1$的两边加上中括号[],否则出现“FROM子句语法错误”。或者用ADOQuery1控件:在
它的SQL属性中写入:select * from [Sheet1$]。

======================================
送你个实例:
今天刚写个这方面的程序段,贴出来,你做下修改
//open excel
procedure TForm1.ConnectClick(Sender: TObject);
var
str,path,xlsName:string;
begin
//connect excel
path:=extractfilepath(application.exename);
OpenDialog1.InitialDir :=path;
OpenDialog1.Filter :='*.xls|*.xls';
if OpenDialog1.Execute then
xlsName :=extractfilename(OpenDialog1.FileName);

str:='Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source= ' + path + xlsName + ';Extended Properties=Excel 8.0;' +
'Persist Security Info=False';
conn.Close;
conn.ConnectionString :=str;
try
conn.Connected :=true;
Adotable1.Close;
Adotable1.TableDirect:=True ;
adotable1.tablename:='sheet1$';
tType.ItemIndex :=-1;
try
adotable1.Open;
dbgrid1.Columns[0].Width :=50;
dbgrid1.Columns[1].Width :=50;
dbgrid1.Columns[2].Width :=50;
dbgrid1.Columns[3].Width :=80;
dbgrid1.Columns[4].Width :=80;
dbgrid1.Columns[5].Width :=200;
except
showmessage('Open Error');
end;
except
self.Caption :='Excel connect error';
exit;
end;

end;

//导入,我使用批处理,adoquery1.locktype->ltBatchOptimistic
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from tablename where 0=1');
ADOQuery1.Open;

ADOTable1.First;
while not ADOTable1.Eof do
begin
ADOQuery1.Append;
ADOQuery1.FieldByName('xx').AsString :=trim(Adotable1.fieldbyname('yy').AsString );
//和上句相同,相应字段数据导入即可
ADOQuery1.Post;
ADOTable1.Next;
end;
ADOQuery1.UpdateBatch();
showmessage('over');

----------------------------
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
INSERT INTO urtable
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')
---------------------------
ADOConnection 指向excel, 用Jet4.0 ,Extended properties设为Excel 8.0
SELECT * into table FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]
--------------------------------------------------
SELECT *
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\temp\b.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')

相关阅读

  • -c ado excel,vb ado excel

  • 乔山办公网excel表格制作
  • 用这个连接百字符串度就可版以。Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:MyExcel.xls;查询时用:权SELECT * FROM [sheet1$]
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网