Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо