delphi新手,请大虾们指教指教 ( 积分: 100 )

  • 主题发起人 fy612819
  • 开始时间
F

fy612819

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了个比较简单的数据库的录入和读出的程序,是使用ado连的,不过录入是从memo里读出了,目前还存在错误,请大家指教一下;读是读到dbgrid里的。使用的方法比较老土,见笑了啊!
读出:
procedure Tquery.Button1Click(Sender: TObject);
var
s1,sqltxt : string;
begin
if (Edit1.Text = '') or (Edit2.Text = '') or (Edit3.Text = '') or
(Edit4.Text = '') then
Message1.MessageDlg('未填入有效的数据!', mtInformation,[mbOk], 0)
else
begin
s1 := ' date = ' + trim(Edit1.Text);
s1 := s1 + 'and Number = ' + trim(Edit4.Text);
s1 := s1 + 'and carnumber in ( select carnumber from car where' ;
s1 := s1 + 'line = ' + trim(edit3.Text);
s1 := s1 + 'and outcarnumber = ' + trim(Edit2.Text) + ')';
sqltxt := 'select * from gpsdatadown where ' + s1;
with query1 do
begin
close;
SQL.clear;
SQL.add(sqltxt);
open;
end;
end;
end;
录入:
procedure TMain.N2Click(Sender: TObject);
var
j : Integer;
DataLength : longint;
number : Integer;
sTemp : string;
Temp : string;
a1 : integer;
a2 : integer;
begin
if bsSkinMemo1.Lines.Text = '' then
bsSkinMessage.MessageDlg('未接受到信息!', mtInformation,[mbOk], 0)
else begin
ADOQuery2.Active := true;
aRxPionter := @bsSkinMemo1.Lines.Text[1];
DataLength := Length(bsSkinMemo1.Lines.Text);
ADOQuery2.Edit;
for j := 2 to DataLength do begin
sTemp := aRxPionter^[j];
ADOQuery2.Insert;
if sTemp = 'B9' then
number := 1
else
number := number + 1 ;

case number of
1 :
begin
if (sTemp[1] >= '0') and (sTemp[1] <= '8') then
ADOQuery2.FieldValues['direction'] := '上行'
else
ADOQuery2.FieldValues['direction'] := '上行';
a1 := ConvertHexChark(sTemp[1]);
a2 := ConvertHexChark(sTemp[2]);
if a1 >= 9 then
a1 := a1 - 9;

ADOQuery2.FieldValues['Number'] := a1 * 16 + a2;
end;

2 : ADOQuery2.FieldValues['LineNumber'] :=StrToInt(sTemp);
3 : ADOQuery2.FieldValues['carNumber'] := StrToInt(sTemp);
4 : ADOQuery2.FieldValues['station'] := sTemp;
5, 8 : Temp := sTemp;
6, 9 : Temp := Temp + ':' + sTemp;
7 :
begin
Temp := Temp + ':' + sTemp;
if Temp = 'FF:FF:FF' then
Temp := '-:-:-';
ADOQuery2.FieldValues['intime'] := strtodatetime(Temp);
Temp := '';
end;

10 :
begin
Temp := Temp + ':' + sTemp;
if Temp = 'FF:FF:FF' then
Temp := '-:-:-';
ADOQuery2.FieldValues['outtime'] := strtodatetime(Temp);
Temp := '';
end;

11 : ADOQuery2.FieldValues['uppeople'] := StrToInt(sTemp);
12 : ADOQuery2.FieldValues['downpeople'] := StrToInt(sTemp);
13 : ADOQuery2.FieldValues['speed'] := StrToInt(sTemp);
14 : Temp := sTemp;

15 :
begin
Temp := inttostr(ConvertHexChark(sTemp[1])) + '-' + Temp;
Temp := inttostr(ConvertHexChark(sTemp[2]) + 2000) + '-' + Temp;
ADOQuery2.FieldValues['date'] := Temp;
Temp := '';
end; // end case 15
end; // case number of

ADOQuery2.refresh;
sTemp := '';
ADOQuery2.Post;
end; // end for
end; // end else
end;
 
F

fy612819

Unregistered / Unconfirmed
GUEST, unregistred user!
大虾们,帮我看看那里出错了啊!多谢了!
 
L

loneer

Unregistered / Unconfirmed
GUEST, unregistred user!
你这运行时出什么错啊
 
K

kfp

Unregistered / Unconfirmed
GUEST, unregistred user!
把错误贴出来
 

Similar threads

I
回复
0
查看
597
import
I
I
回复
0
查看
662
import
I
I
回复
0
查看
743
import
I
I
回复
0
查看
550
import
I
顶部