0
DelphiでInterbaseを初めて使用しています。誰かが私のコードをFirebirdデータベースからデータを照会するためにInterbaseを正しく使う方法を教えてもらえますか?あなたは、データソースまでのクエリをフックDBBandedTableViewを使用してクエリにDBBandedTableViewをリンクする必要がありdelphi7でInterbaseを使用する
procedure TfJM00001.af_search;
var
i : integer;
qryQuery : TIBdataset;
sql : string;
begin
Try
qryQuery := TIBDataSet.Create(nil);
qryQuery.Database := IBDatabase1;
qryQuery.Transaction := qryQuery.Database.DefaultTransaction;
sql := ' select pro.pro_id, pro.pro_nm, cat.cat_nm, div.division_nm, pro.price, pro.weight, pro.qty , typ.type_nm, pro.images ' + #13#10 +
' from product pro ' +#13#10+
' left join division div on div.division_id = pro.division_id ' +#13#10+
' left join category cat on cat.cat_id = pro.cat_id ' +#13#10+
' left join tbl_type typ on typ.type_id = pro.type_id; ' ;
try
qryQuery.Close;
qryQuery.SelectSQL.Text := sql;
qryQuery.Open;
if qryQuery.RecordCount < 0 then exit;
with cxGrid1BandedTableView1.DataController do
begin
RecordCount := 0;
BeginUpdate;
while not(qryQuery.Eof) do
begin
i := AppendRecord;
SetValue(i, col_Pro_Id.Index ,qryQuery.FieldByName('PRO_ID').AsString);
SetValue(i, col_Pro_NM.Index ,qryQuery.FieldByName('PRO_NM').AsString);
SetValue(i, col_Cat_NM.Index ,qryQuery.FieldByName('CAT_NM').AsString);
SetValue(i, col_Type_NM.Index ,qryQuery.FieldByName('TYPE_NM').AsString);
SetValue(i, col_Price.Index ,qryQuery.FieldByName('PRICE').AsString);
// SetValue(i, Col_Description.Index ,qryQuery.FieldByName('PRO_NM').AsString);
SetValue(i, Col_Weight.Index ,qryQuery.FieldByName('WEIGHT').AsString);
SetValue(i, col_Qty.Index ,qryQuery.FieldByName('QTY').AsString);
SetValue(i, col_Division.Index ,qryQuery.FieldByName('DIVISION_NM').AsString);
// SetValue(i, col_register_date.Index ,qryQuery.FieldByName('PRO_NM').AsString);
//SetValue(i, col_Compound.Index ,qryQuery.FieldByName('Images').AsVariant);
qryQuery.Next;
end;
EndUpdate;
end;
except on
e : exception do
begin
showmessage('Error Message : ' + e.Message);
end;
end;
Finally
qryQuery.Database.DefaultTransaction.Active := False;
end;
end;
SOは約**具体的な質問です。何**正確**の問題がありますか? – MartynA
Firebird!= Interbase。 InterbaseまたはFirebirdについてのあなたの質問は本当に同じものではなく、Firebirdデータベースを照会するためにInterbaseを使うことができないためです。 –
私はデータベース(* .fdb)を持っていて、私のプログラムでは、(* .fdb)からデータをクエリするためにinterbaseコンポーネントを使用しました。またはこれを達成するために他に何かありますか? –