请教两个问题(1:Delphi和excel;2:delphi和dbf)
一、Delphi于excel的问题:描述:excel没有关键字,各字段均可为空。
1. 当前8行某列有值时,9行以后该列的数据可读出。
2. 当前8行某列没有值时,9行以后该列的数据不能读出,为空。
代码我没写,直接用ADO连接EXCEL,ADOTABLE连接文件取出数据。用DBGRID显示出来。
ADOCONNECTION连接代码如下:
“Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=E:\分析中心程序\原始数据.xls;Mode=Read;Extended Properties=Excel 8.0;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False” 只是在ADOTABLE中选表时,出现了一个“表明+$”的表,比如我的WORKSHEET名称为“A”,在ADOTABLE中选表时出现:A 和A$,而且选A的话不能取出数据,只能选A$才能显示出数据(但是我只建了一个表A。 请高手赐教为什么?
二、Delphi如何彻底删除dbf表中的数据:我目前是分两个步骤删除,先打删除标记,在彻底删除。但有个问题,彻底删除时提示file is in use。
代码如下:(1)删除标记
var i:integer;
dat_begin:string;
begin
dat_begin:=formatdatetime('mm-dd-yyyy',datetimepicker1.date);
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from sydrk ');
//where rq = ctod('''+dat_begin+''')');
open;
for i:=1 to adoquery1.recordcount do
delete;
adoquery1.close;
adoquery1.open;
代码如下:(2)彻底删除
with adocommand1 do
begin
'pack sydrk.dbf';
adocommand1.Execute;
end;
请高手指教!!!