با سلام
تو برنامم برای گزارشگیری باید اطلاعاتم رو از دو جدول بیارم یعنی اولا افرادی( ttclocknahaye ) که سال و ترم اونها با combo1,combo4 مطابقت داشته باشند ثانیا نام و نام خانوادگی و شماره پرسنلی آنها مطابق combo2,combo3,combo5 باشه ( چاپ انفرادی ) عکس هایی که قبلا ذخیره شده اند و پسوند آنها bmp باشه رو درست اجرا می شه ولی افرادی که عکس آنها با پسودند jpg باشه مشکل می گیره در حالیکه از همین تکه برنامه برای ویرایش در فرم دیگه ای استفاده می کنم عکس با پسوند bmp,jpg رو نشون مس ده و مشکلی نمی گیره خطایی هم که می گیره اینه (در این دستورات باید هر فرد رو با اطلاعاتش با عکسش در کارتش چاپ کنه )
خطاش اینه
کد:
project project1.exe raised exception class EInvalid Graphic with message "Bitmap is not valid".process stopped.use step or Run to countinue
دستورات برنامم هم اینه
کد:
var
pic:TJPEGImage;
stream:TStream;
begin
//sodor_kart.Image1.Stretch:=true;
with ADOQuery2 do
begin
sql.Text:='select * from tteacher where ido= :p1';
Parameters.ParamByName('p1').Value:=sodor_kart.ComboBox5.Text;
Open;
end;
// begin
// sql.Text:='select * from personel where f_name = :p1 and l_name = :p2';
// Parameters.ParamByName('p1').Value:=edit1.Text;
// Parameters.ParamByName('p2').Value:=edit2.Text;
// Open;
// end;
pic:=TJPEGImage.Create;
stream:=ADOQuery2.CreateBlobStream(ADOQuery2.FieldByName('pic'),bmRead);
if stream.Size<>0 then
begin
if copy(ADOQuery2.FieldByName('pic').AsString,1,1)='B' then
QRDBImage1.Picture.Bitmap.LoadFromStream(stream)
else
begin
pic.LoadFromStream(stream);
QRDBImage1.Picture.Assign(pic);
end;
end
else
QRDBImage1.Picture.Graphic:=nil;
stream.Free;
pic.Free;
ADOQuery3.Close;
ADOQuery3.Open;
adoQuery3.SQL.Clear;
ADOQuery3.Close;
adoquery3.SQL.Add('select post from tteacher');
ADOQuery3.SQL.Add('WHERE (familly LIKE''' + sodor_kart.combobox3.TEXT+'%'')and(name LIKE''' + sodor_kart.ComboBox2.TEXT+'%'')and(ido LIKE''' + sodor_kart.ComboBox5.TEXT+'%'')');
adoQuery3.Open;
adoQuery3.First;
while not adoQuery3.Eof do
begin
QRDBText5.Caption:=(ADOQuery3.FieldValues['post']);
adoQuery3.Next;
end;
report_one.QuickRep1.Preview;
end;
مشکل رو چطور باید حل کنم ؟ با تشکر