![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
p1:tparam-->p1.free [D6, dBase, FoxPro]
denis24 © (2004-06-21 15:19:00)Есть параметрический запрос.Я создаю параметры ,называю их даю значения ,подставляю в запрос все ок.Но как только p1.free
вылазит Acces violation.......
query2.Params.Clear;
P1 := TParam.Create(Query2.Params, ptInput);
Query2.Params[0].Name := 'card_no';
Query2.ParamByname('card_no').Asfloat:=12......
denis24 (2004-06-21 18:13:00) [1]var
p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13:TParam;
filename:string;
begin
if ListSelect.Count=0 then exit;
begin
filename:=FormatDateTime('hhnnss',time)+'.dbf';
with DataModule5 do
begin
Query2.close;
Query2.sql.Clear;
query2.DatabaseName :=ExtractFilePath(Application.ExeName)+'out\';
Query2.sql.Add ('create table "'+filename+'"');
Query2.sql.add('(card_no Numeric (16,0),"'+filename+'"."sum" numeric(16,2))');
Query2.execsql;
Query2.Close;
DBGrid1.DataSource.DataSet.First ;
Query2.sql.Clear;
query2.Params.Clear;
P1 := TParam.Create(Query2.Params, ptInput);
P2 := TParam.Create(Query2.Params, ptInput);
Query2.Params[0].Name := 'card_no';
Query2.Params[1].Name := 'sum';
Query2.sql.Add('insert into "'+filename +'" ');
Query2.sql.add('(card_no,"'+filename+'"."sum")');
Query2.sql.add(' values (:card_no,:sum)');
query1.DatabaseName :=ExtractFilePath(Application.ExeName)+'data\';
query1.Close ;
query1.SQL.Clear;
query1.sqL.Add('INSERT INTO data.dbf');
query1.sql.add(' (result,egf_cpnc,bsc_shf,bpl_a_acc,bpl_b_acc,bpl_sum,bpl_dat_od,bpl_osnd,ost_26XX,bin,bpl_tim_p)');
query1.SQL.Add(' VALUES (:result,:egf_cpnc,:bsc_shf,:bpl_a_acc,:bpl_b_acc,:bpl_sum,:bpl_dat_od,:bpl_osnd,:ost_26XX,:bin,:bpl_tim_p)');
query1.Params.Clear;
P3 := TParam.Create(query1.Params, ptInput);
P4 := TParam.Create(query1.Params, ptInput);
P5 := TParam.Create(query1.Params, ptInput);
P6 := TParam.Create(query1.Params, ptInput);
P7 := TParam.Create(query1.Params, ptInput);
P8 := TParam.Create(query1.Params, ptInput);
P9 := TParam.Create(query1.Params, ptInput);
P10:= TParam.Create(query1.Params, ptInput);
P11 := TParam.Create(query1.Params, ptInput);
P12 := TParam.Create(query1.Params, ptInput);
P13 := TParam.Create(query1.Params, ptInput);
query1.Params[0].Name := 'result';
query1.Params[1].Name := 'egf_cpnc';
query1.Params[2].Name := 'bsc_shf';
query1.Params[3].Name := 'bpl_a_acc';
query1.Params[4].Name := 'bpl_b_acc';
query1.Params[5].Name := 'bpl_sum';
query1.Params[6].Name := 'bpl_dat_od';
query1.Params[7].Name := 'bpl_osnd';
query1.Params[8].Name := 'ost_26XX';
query1.Params[9].Name := 'bin';
query1.Params[10].Name := 'bpl_tim_p';
while DBGrid1.DataSource.DataSet.Eof=false do
begin
IF ListSelect.IndexOf(Pointer(DBGrid1.DataSource.
DataSet.FieldByName('number').Asinteger)) >= 0 then
begin
Query2.unprepare;
Query2.ParamByname('card_no').Asfloat:=DBGrid1.DataSource.DataSet.FieldByName('bin').AsVariant;
Query2.ParamByname('sum').Asfloat:=DBGrid1.DataSource.DataSet.FieldByName('result').AsFloat;
Query2.prepare;
Query2.execsql;
query1.unprepare;
query1.ParamByname('result').Asfloat:=DBGrid1.DataSource.DataSet.FieldByName('result').asfloat;
query1.ParamByname('egf_cpnc').Asstring:=DBGrid1.DataSource.DataSet.FieldByName('egf_cpnc').asstring;
query1.ParamByname('bsc_shf').asstring:=DBGrid1.DataSource.DataSet.FieldByName('bsc_shf').asstring;
query1.ParamByname('bpl_a_acc').Asstring:=DBGrid1.DataSource.DataSet.FieldByName('bpl_a_acc').Asstring;
query1.ParamByname('bpl_b_acc').Asstring:=DBGrid1.DataSource.DataSet.FieldByName('bpl_b_acc').Asstring;
query1.ParamByname('bpl_sum').Asfloat:=DBGrid1.DataSource.DataSet.FieldByName('bpl_sum').Asfloat;
query1.ParamByname('bpl_dat_od').Asdatetime :=DBGrid1.DataSource.DataSet.FieldByName('bpl_dat_od').Asdatetime;
query1.ParamByname('bpl_osnd').Asstring :=DBGrid1.DataSource.DataSet.FieldByName('bpl_osnd').Asstring;
query1.ParamByname('ost_26XX').Asfloat :=DBGrid1.DataSource.DataSet.FieldByName('ost_26XX').Asfloat;
query1.ParamByname('bin').Asstring:=DBGrid1.DataSource.DataSet.FieldByName('bin').Asstring;
query1.ParamByname('bpl_tim_p').Asstring:=DBGrid1.DataSource.DataSet.FieldByName('bpl_tim_p').Asstring;
query1.prepare;
query1.ExecSQL;
end;
DBGrid1.DataSource.DataSet.Next;
p1.Free;p2.Free;p3.Free;p4.Free;p5.Free;p6.Free;p7.Free;p8.Free;
p9.Free;p10.Free;p11.Free;p12.Free;p13.Free;
with Session do
for I := 0 to DatabaseCount -1 do
Databases[I].CloseDataSets ;
end;end;end;
bushmen (2004-06-21 17:53:00) [2]А сам запрос где?
denis24 (2004-06-21 17:39:00) [3]query2.Params.Clear;
P1 := TParam.Create(Query2.Params, ptInput);
Query2.Params[0].Name := 'card_no';
Query2.ParamByname('card_no').Asfloat:=12......
p1.free;
query2.close
Sandman25 (2004-06-21 15:22:00) [4]Я не вижу в коде
p1.free