سلام
اول بگم مشكل از Id نيست .
در مورد كدي كه نوشته بودين يه مورد به نظرم اومد ، اين كه تعداد فيلدهاي جدولتون
19 تاست پس چون پارامترهاي كد SQL از شماره 0 ( يعني از p0: ) شروع شده پس آخريش
بايد با P18: تموم بشه كه ميتونه باعث رفع مشكلتون بشه . من چون نميدونستم نوع هر
كدوم از فيلدهاي جدول شما چيه . يه Table ساختم كه همين فيلدهاي شما رو داشت ولي
همش از نوع Char بود البته غير از فيلد AX . كدي كه براي دكمه توي دلفي نوشتم اين بود :
procedure TForm1.Button1Click(Sender: TObject);
var
stream:tstream;
begin
with ADOQuery1 do
begin
sql.Text:='select * from Tcustomer';
Open;
end;
stream:=ADOQuery1.CreateBlobStream(ADOQuery1.Field ByName('ax'),bmRead);
image1.Picture.Graphic.SaveToStream(stream);
With ADOQuery1 do
begin
SQL.Text:='insert into Tcustomer (sex,fname,lname,fathers_name,meli_no,sh_no,date_b irth,exported,state,date_member,kind,credit,from_d ate,to_date,tel,mob,address,ax,comment) VALUES (:p0,:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8,:p9,:p10,:p11 ,:p12,:p13,:p14,:p15,:p16,:p17,:p18)';
Parameters.ParamByName('p0').Value:=edit1.Text;
Parameters.ParamByName('p1').Value:=edit1.Text;
Parameters.ParamByName('p2').Value:=edit1.Text;
Parameters.ParamByName('p3').Value:=edit1.Text;
Parameters.ParamByName('p4').Value:=edit1.Text;
Parameters.ParamByName('p5').Value:=edit1.Text;
Parameters.ParamByName('p6').Value:=edit1.Text;
Parameters.ParamByName('p7').Value:=edit1.Text;
Parameters.ParamByName('p8').Value:=edit1.Text;
Parameters.ParamByName('p9').Value:=edit1.Text;
Parameters.ParamByName('p10').Value:=edit1.Text;
Parameters.ParamByName('p11').Value:=edit1.Text;
Parameters.ParamByName('p12').Value:=edit1.Text;
Parameters.ParamByName('p13').Value:=edit1.Text;
Parameters.ParamByName('p14').Value:=edit1.Text;
Parameters.ParamByName('p15').Value:=edit1.Text;
Parameters.ParamByName('p16').Value:=edit1.Text;
Parameters.ParamByName('p17').LoadFromStream(strea m,ftBlob);
Parameters.ParamByName('p18').Value:=edit1.Text;
ExecSQL;
end;
end;
كدي هم كه براي Load كردن اطلاعات نوشتم اين بود :
procedure TForm1.Button2Click(Sender: TObject);
var
stream:TStream;
pic:TJPEGImage;
begin
With ADOQuery1 do
begin
sql.text:='select * from Tcustomer';
Open;
end;
edit1.Text:=ADOQuery1.FieldByName('sex').AsString;
stream:=ADOQuery1.CreateBlobStream(ADOQuery1.Field ByName('ax'),bmRead);
if stream.Size<>0 then
begin
if copy(ADOQuery1.FieldByName('ax').AsString,1,1)='B' then
image1.Picture.Bitmap.LoadFromStream(stream)
else
begin
pic:=TJPEGImage.Create;
pic.LoadFromStream(stream);
image1.Picture.Assign(pic);
pic.Free;
end;
end
else
image1.Picture.Graphic:=nil;
stream.Free;
end;
هر دوي اين كد ها رو تست كردم و بدون هيچ مشكلي كار ميكنن .
موفق باشيد .