代码如下:
qry1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+dlgOpen1.FileName+';Extended Properties=Excel 8.0;Persist Security Info=False';
qry1.SQL.Clear;
sql := ('select * from OPENROWSET('+quotedstr('MICROSOFT.JET.OLEDB.4.0')+','+quotedstr('Excel 5.0;HDR=YES;Excel 8.0;DATABASE='+dlgOpen1.FileName)+',['+s+'])');
qry1.SQL.Add(sql);
qry1.Open; //这里报错(提示From附近字句语法有错)但是我直接把SQL考到查询分析器中可以查询出excel中的信息
我想要实现将从Excel中查询出数据并保存到数据集中~~~大家帮我看看~有好的思路也可以提供~~谢谢大家了~
qry1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+dlgOpen1.FileName+';Extended Properties=Excel 8.0;Persist Security Info=False';
qry1.SQL.Clear;
sql := ('select * from OPENROWSET('+quotedstr('MICROSOFT.JET.OLEDB.4.0')+','+quotedstr('Excel 5.0;HDR=YES;Excel 8.0;DATABASE='+dlgOpen1.FileName)+',['+s+'])');
qry1.SQL.Add(sql);
qry1.Open; //这里报错(提示From附近字句语法有错)但是我直接把SQL考到查询分析器中可以查询出excel中的信息
我想要实现将从Excel中查询出数据并保存到数据集中~~~大家帮我看看~有好的思路也可以提供~~谢谢大家了~
解决方案 »
- 不明容器panel中有多少控件,能全部清除吗?如何清除呢?
- 如何提高db的查询速度
- indy达人请进来! 关于idhttpserver的问题
- 请问如何找到网上邻居的列表?
- sql數據庫問題
- 请问,如何用代码来认别 Win98 和 Win Me
- 那里有Server控件面板上的控件TExcelXXXXXXXXX相关的资料,Delphi里的帮助好像没有的嘛!!!!!!
- WinME真是一堆垃圾,我发布的软件(ADO)在Win9x,Win2K,WinXP下都能正常运行,唯独……
- 在mis的开发中,事务和锁一般需要自己定做吗,另外,在单机上怎么验证多用户系统是否成功??//牛虻
- 各位大虾,谁的Delphi6.0的密码能告诉我,我重重有分
- 有人想了解 ARCGIS 的SOE服务拓展吗?
- datetime写库的问题
“select * from [Sheet1$]”
Sheet1是工作表名,根据实际情况去写。
procedure TForm1.Button1Click(Sender: TObject);//在数据库中自动生成表qqq
var s:string;
ADOConn:TADOConnection;
aDataSet:TADODataSet;
begin
if OpenDialog1.Execute then
begin
ADOConn:=TADOConnection.Create(self);
ADOConn.LoginPrompt:=false;
ADOConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
+OpenDialog1.FileName
+';Extended Properties=Excel 8.0;Persist Security Info=False';
aDataSet:=TADODataSet.Create(self);
aDataSet.Connection:=ADOConn;
ADOConn.OpenSchema(siTables,EmptyParam,EmptyParam,aDataSet);
aDataSet.Last;
s:=aDataSet.Fields.Fields[2].AsString;//获取第一工作表表名
aDataSet.Close;
aDataSet.Free;
ADOConn.Close;
ADOConn.Free;
ADOQuery2.Connection:=ADOConnection1;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Append('select * into qqq from OPENROWSET(');//将这个‘qqq’字改为你的数据库中的表名
ADOQuery2.SQL.Append(quotedstr('MICROSOFT.JET.OLEDB.4.0'));
ADOQuery2.SQL.Append(','+quotedstr('Excel 5.0;HDR=YES;Excel 8.0;DATABASE='+OpenDialog1.FileName)+',['+s+'])');
ADOQuery2.ExecSQL;
showmessage('ok');
end;
end;
procedure TForm1.Button3Click(Sender: TObject);//在数据库中已经存在表qqq
var s:string;
ADOConn:TADOConnection;
aDataSet:TADODataSet;
begin
if OpenDialog1.Execute then
begin
ADOConn:=TADOConnection.Create(self);
ADOConn.LoginPrompt:=false;
ADOConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
+OpenDialog1.FileName
+';Extended Properties=Excel 8.0;Persist Security Info=False';
aDataSet:=TADODataSet.Create(self);
aDataSet.Connection:=ADOConn;
ADOConn.OpenSchema(siTables,EmptyParam,EmptyParam,aDataSet);
aDataSet.Last;
s:=aDataSet.Fields.Fields[2].AsString;//获取第一工作表表名
aDataSet.Close;
aDataSet.Free;
ADOConn.Close;
ADOConn.Free;
ADOQuery2.Connection:=ADOConnection1;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Append('insert into qqq select * from OPENROWSET(');//将这个‘qqq’字改为你的数据库中的表名
ADOQuery2.SQL.Append(quotedstr('MICROSOFT.JET.OLEDB.4.0'));
ADOQuery2.SQL.Append(','+quotedstr('Excel 5.0;HDR=YES;Excel 8.0;DATABASE='+OpenDialog1.FileName)+',['+s+'])');
ADOQuery2.ExecSQL;
showmessage('ok');
end;
end;
摘自:http://topic.csdn.net/u/20110409/17/5da85312-084c-4827-837a-acc69b546563.html
ADOQuery2.SQL.Append('insert into qqq select * from OPENROWSET(');//将这个‘qqq’字改为你的数据库中的表名
ADOQuery2.SQL.Append(quotedstr('MICROSOFT.JET.OLEDB.4.0'));
ADOQuery2.SQL.Append(','+quotedstr('Excel 5.0;HDR=YES;Excel 8.0;DATABASE='+OpenDialog1.FileName)+',['+s+'])');
ADOQuery2.ExecSQL;
//这几句修改下九行了,'insert into OPENROWSET(‘+quotedstr('MICROSOFT.JET.OLEDB.4.0')+','+quotedstr('Excel 5.0;HDR=YES;Excel 8.0;DATABASE='+OpenDialog1.FileName)+',['+s+'])' +'select * from qqq'+