将TXT里的内容取出,并写入ADO,自己写的有错,插入不进数据,请高手看下。ADO没连数据库哦。(我没用数据库,每个数据都存成一个TXT,然后查看的时候用流读出来,赋值到ADO,然后使用DBGridEh显示)就ADOQuery+DataSource+DBGridEh 三个控件。不知是不是没有创建临时表的原因,请问需要吗?请各位帮忙看下,然后修改下代码,谢谢!TXT的内容格式:08:07:35|37|134|175|37|43......procedure TForm1.btn1Click(Sender: TObject);
var
MyLog,Temp:TStringList;
i:Integer;
LoadPtch:string;
begin
MyLog:=TStringList.Create();
Temp:=TStringList.Create();
LoadPtch:=ExtractFilePath(Application.ExeName)+'TEST.TXT';
MyLog.loadfromfile(LoadPtch);
Temp.Delimiter := '|';
for i:=0 to MyLog.Count-1 do
begin
Temp.Clear;
Temp.DelimitedText :=trim(MyLog.strings[i]);
qry1.Close;
qry1.SQL.Clear;
qry1.Sql.Text:='insert into TEMPDATA(NowTime,T1,F1,T2,F2,T3,F3,T4,F4,T5,F5,T6,F6,P,TP) values(:GTime,:GT1,:GF1,:GT2,:GF2,:GT3,:GF3,:GT4,:GF4,:GT5,:GF5,:GT6,:GF6,:GP,:GTP)';
qry1.Parameters.ParamByName('GTime').Value:=StrToDate(Temp.Strings[0]);
qry1.Parameters.ParamByName('GT1').Value:=StrToDate(Temp.Strings[1]);
qry1.Parameters.ParamByName('GF1').Value:=StrToFloat(Temp.Strings[2]);
qry1.Parameters.ParamByName('GT2').Value:=StrToFloat(Temp.Strings[3]);
qry1.Parameters.ParamByName('GF2').Value:=StrToFloat(Temp.Strings[4]);
qry1.Parameters.ParamByName('GT3').Value:=StrToFloat(Temp.Strings[5]);
qry1.Parameters.ParamByName('GF3').Value:=StrToFloat(Temp.Strings[6]);
qry1.Parameters.ParamByName('GT4').Value:=StrToFloat(Temp.Strings[7]);
qry1.Parameters.ParamByName('GF4').Value:=StrToFloat(Temp.Strings[8]);
qry1.Parameters.ParamByName('GT5').Value:=StrToFloat(Temp.Strings[9]);
qry1.Parameters.ParamByName('GF5').Value:=StrToFloat(Temp.Strings[10]);
qry1.Parameters.ParamByName('GT6').Value:=StrToFloat(Temp.Strings[11]);
qry1.Parameters.ParamByName('GF6').Value:=StrToFloat(Temp.Strings[12]);
qry1.Parameters.ParamByName('GP').Value:=StrToFloat(Temp.Strings[13]);
qry1.Parameters.ParamByName('GTP').Value:=StrToFloat(Temp.Strings[14]);
qry1.ExecSql;
end;
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('select * from TEMPDATA');
qry1.Open;
qry1.active:=false;
qry1.active:=True;
MyLog.Free;
Temp.Free;
end;
var
MyLog,Temp:TStringList;
i:Integer;
LoadPtch:string;
begin
MyLog:=TStringList.Create();
Temp:=TStringList.Create();
LoadPtch:=ExtractFilePath(Application.ExeName)+'TEST.TXT';
MyLog.loadfromfile(LoadPtch);
Temp.Delimiter := '|';
for i:=0 to MyLog.Count-1 do
begin
Temp.Clear;
Temp.DelimitedText :=trim(MyLog.strings[i]);
qry1.Close;
qry1.SQL.Clear;
qry1.Sql.Text:='insert into TEMPDATA(NowTime,T1,F1,T2,F2,T3,F3,T4,F4,T5,F5,T6,F6,P,TP) values(:GTime,:GT1,:GF1,:GT2,:GF2,:GT3,:GF3,:GT4,:GF4,:GT5,:GF5,:GT6,:GF6,:GP,:GTP)';
qry1.Parameters.ParamByName('GTime').Value:=StrToDate(Temp.Strings[0]);
qry1.Parameters.ParamByName('GT1').Value:=StrToDate(Temp.Strings[1]);
qry1.Parameters.ParamByName('GF1').Value:=StrToFloat(Temp.Strings[2]);
qry1.Parameters.ParamByName('GT2').Value:=StrToFloat(Temp.Strings[3]);
qry1.Parameters.ParamByName('GF2').Value:=StrToFloat(Temp.Strings[4]);
qry1.Parameters.ParamByName('GT3').Value:=StrToFloat(Temp.Strings[5]);
qry1.Parameters.ParamByName('GF3').Value:=StrToFloat(Temp.Strings[6]);
qry1.Parameters.ParamByName('GT4').Value:=StrToFloat(Temp.Strings[7]);
qry1.Parameters.ParamByName('GF4').Value:=StrToFloat(Temp.Strings[8]);
qry1.Parameters.ParamByName('GT5').Value:=StrToFloat(Temp.Strings[9]);
qry1.Parameters.ParamByName('GF5').Value:=StrToFloat(Temp.Strings[10]);
qry1.Parameters.ParamByName('GT6').Value:=StrToFloat(Temp.Strings[11]);
qry1.Parameters.ParamByName('GF6').Value:=StrToFloat(Temp.Strings[12]);
qry1.Parameters.ParamByName('GP').Value:=StrToFloat(Temp.Strings[13]);
qry1.Parameters.ParamByName('GTP').Value:=StrToFloat(Temp.Strings[14]);
qry1.ExecSql;
end;
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('select * from TEMPDATA');
qry1.Open;
qry1.active:=false;
qry1.active:=True;
MyLog.Free;
Temp.Free;
end;
解决方案 »
- 如何用Rave打印DBGrid中的数据?
- delphi 读写图片 SqlServer的image字段
- Delphi程序员笔试题目
- 关于Sql Server和程序发布的问题?
- 今天的MSN和HOTMAIL我都登录不上去?MS被荡了??
- c/s结构中的数据提交问题
- 报表显示?
- comboboxex控件怎么使他初始化的时候让第3个元素处于选中的状态
- 想把字符串里的数据存到数组里(数据是BYTE类型的)
- wwwunix([email protected]),错误信息已贴出怎么不帮我解决难题
- 好久没散分了...来散一个..
- Delphi7怎么设置权限。即是:有一个登录窗体,不同的用户登录之后,在主窗体中有不同的操作权限
那应该使用Tclientdataset
能详细说下吗
主要没用过clientdataset,不知道代码怎么写,求教程代码
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBGridEhGrouping, StdCtrls, DB, ADODB, GridsEh, DBGridEh,
DBClient;type
TForm1 = class(TForm)
dbgrdh1: TDBGridEh;
ds1: TDataSource;
btn1: TButton;
ds2: TClientDataSet;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.btn1Click(Sender: TObject);
var
MyLog,Temp:TStringList;
LoadPtch:string;
i:Integer;
begin
LoadPtch:=ExtractFilePath(Application.ExeName)+'TEST.TXT';
MyLog:=TStringList.Create();
Temp:=TStringList.Create();
MyLog.loadfromfile(LoadPtch);
ds2.Close;
ds2.CreateDataSet;
ds2.Append;
Temp.Delimiter := '|';
for i:=MyLog.Count-1 downto 0 do
begin
Temp.Clear;
Temp.DelimitedText :=trim(MyLog.strings[i]);
ds2.Insert;
ds2.FieldByName('NowTime').AsString:=Temp.Strings[0];
ds2.FieldByName('T1').AsString:=Temp.Strings[1];
ds2.FieldByName('F1').AsString:=Temp.Strings[2];
end;
MyLog.Free;
Temp.Free;
end;
end.自己写了下,可以使用,谢谢以上大侠给予提示和思路