我有许多应用程序可以读取Excel电子表格以转换为SQL
所有应用程序都基于相同的技术,使用以下过程。直到最近在一个客户站点上安装它才能完美运行。
程序
procedure TFormSpreadsheet.ConnectToExcel;
var strConn : widestring;
begin
strConn:='Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + edtSpreadsheet.Text + ';' +
'Extended Properties=Excel 8.0;';
showmessage(strConn);
ConnectionIn.Connected:=False;
ConnectionIn.ConnectionString:=strConn;
try
ConnectionIn.Open;
except
ShowMessage('Unable to connect to Excel, make sure the workbook ' + edtSpreadsheet.Text + ' exists!');
raise;
end;
end;(*ConnectToExcel*)
procedure TFormSpreadsheet.FetchData;
begin
StatusBar1.SimpleText:='';
ConnectToExcel;
QrySpreadsheetIn.Close;
QrySpreadsheetIn.SQL.Text:=MemoQry.Text;
showmessage('qry is ' + memoqry.Text);
try
QrySpreadsheetIn.Open;
clientdataset1.Open;
except
ShowMessage('Unable to read data from Excel, make sure the query ' + edtSpreadsheet.Text +
' is meaningful!');
raise;
end;
end;
在这一个网站上,我收到消息“无法从Excel读取数据,请确保查询有意义”
查询显示'Select * from [sheetname $]
适用于所有其他网站)
在客户站点上运行的Showmessages显示连接成功,但查询的打开(适用于我尝试的每个其他安装)都失败。
其他一些信息 -
该过程是在32位系统上的Delphi 7中开发的。 失败的安装是在64位系统上,但我已成功安装在其他64位系统上。
我已经读过,有些DLL可能会丢失或处于非活动状态,但网站IT公司已确保它们应该全部有序。
有没有人有任何想法?也许一些代码可以用来证明什么是错的。
预先提出任何帮助/建议