procedure TForm1.Button1Click(Sender: TObject);
var
OpenDialog:TOpenDialog;
iCount:integer;
filename:String;
begin
if MessageDlg('是否真的导入Excel数据?',mtConfirmation,[mbYes,mbNo],0)
=mrYes then
try
openDialog:=TOpenDialog.Create(self);
openDialog.DefaultExt:='xls';
openDialog.Filter:='Microsof Excel 文件(*.xls)|*.xls';
openDialog.Execute; if openDialog.FileName<>'' then
try
fileName:=ExtractFileName(OpenDialog.FileName);
Screen.Cursor:=crSqlWait;
ExcelConn.Close;
ExcelConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+openDialog.FileName+';Extended Properties=Excel 8.0;Persist Security Info=False';
Excelconn.Open(); With ExcelQuery do
begin
Close;
SQl.Clear;
sql.Add('select number,name from [Sheet1$]');
//上面一句改为sql.Add('select number,name from [filename]'),也出现同样的错误
Prepared:=true;
Open;
end; iCount:=ExcelQuery.RecordCount;
ADOQuery1.Last;
Excelconn.BeginTrans;
ExcelQuery.First; while not ExcelQuery.Eof do
begin
with adoCommand1 do
begin
CommandText:='Insert into xsjk values('
+''''+Trim(ExcelQuery.FieldByName('Number').AsString)+''''+','
+''''+Trim(ExcelQuery.FieldByName('Name').AsString)+''''+')';
Execute;
end;
ExcelQuery.Next;
form1.StatusBar1.Refresh;
statusbar1.Panels[1].Text:='当前数:'+IntToStr(ExcelQuery.RecNo)
+'(共'+IntToStr(iCount)+'条)';
end; ExcelConn.CommitTrans;
MessageDlg('数据导入成功!',mtInformation,[mbOK],0);
except
ExcelConn.RollbackTrans;
MessageDlg('数据导入失败!',mtInformation,[mbOK],0);
end; finally
ExcelQuery.Close;
ExcelConn.Close;
OpenDialog.Free;
screen.Cursor:=crDefault;
StatusBar1.Panels[1].Text:='';
end;end;//上面ExcelConn为ADOConnection组件名,ExcelQuery则为ADOQuery.但该程序运行时
显示:project1.exe raised exception class TDatabaseError with message"Missing
Connection or connectionString.".请问我的程序中,哪里出错呢? 谢谢!!
var
OpenDialog:TOpenDialog;
iCount:integer;
filename:String;
begin
if MessageDlg('是否真的导入Excel数据?',mtConfirmation,[mbYes,mbNo],0)
=mrYes then
try
openDialog:=TOpenDialog.Create(self);
openDialog.DefaultExt:='xls';
openDialog.Filter:='Microsof Excel 文件(*.xls)|*.xls';
openDialog.Execute; if openDialog.FileName<>'' then
try
fileName:=ExtractFileName(OpenDialog.FileName);
Screen.Cursor:=crSqlWait;
ExcelConn.Close;
ExcelConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+openDialog.FileName+';Extended Properties=Excel 8.0;Persist Security Info=False';
Excelconn.Open(); With ExcelQuery do
begin
Close;
SQl.Clear;
sql.Add('select number,name from [Sheet1$]');
//上面一句改为sql.Add('select number,name from [filename]'),也出现同样的错误
Prepared:=true;
Open;
end; iCount:=ExcelQuery.RecordCount;
ADOQuery1.Last;
Excelconn.BeginTrans;
ExcelQuery.First; while not ExcelQuery.Eof do
begin
with adoCommand1 do
begin
CommandText:='Insert into xsjk values('
+''''+Trim(ExcelQuery.FieldByName('Number').AsString)+''''+','
+''''+Trim(ExcelQuery.FieldByName('Name').AsString)+''''+')';
Execute;
end;
ExcelQuery.Next;
form1.StatusBar1.Refresh;
statusbar1.Panels[1].Text:='当前数:'+IntToStr(ExcelQuery.RecNo)
+'(共'+IntToStr(iCount)+'条)';
end; ExcelConn.CommitTrans;
MessageDlg('数据导入成功!',mtInformation,[mbOK],0);
except
ExcelConn.RollbackTrans;
MessageDlg('数据导入失败!',mtInformation,[mbOK],0);
end; finally
ExcelQuery.Close;
ExcelConn.Close;
OpenDialog.Free;
screen.Cursor:=crDefault;
StatusBar1.Panels[1].Text:='';
end;end;//上面ExcelConn为ADOConnection组件名,ExcelQuery则为ADOQuery.但该程序运行时
显示:project1.exe raised exception class TDatabaseError with message"Missing
Connection or connectionString.".请问我的程序中,哪里出错呢? 谢谢!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货