begin
ssql:='select 'select A.sta_id 工號 ,A.sta_name 姓名, B.dep_name 部門 from tab_staff A, tab_department B where ....';
ssql:=ssql + 'where A.dep_id=B.dep_id order by A.dep_id ';
with dm.query1 do
begin
Close;
SQL.Clear;
SQL.Add (ssql);
open;
last;
DBGrid1.DataSource := DataSource2;
//假定 原来 DBGrid1.DataSource := DataSource1
// DataSource1.DataSet := Query1
end;
ssql:='select 'select A.sta_id 工號 ,A.sta_name 姓名, B.dep_name 部門 from tab_staff A, tab_department B where ....';
ssql:=ssql + 'where A.dep_id=B.dep_id order by A.dep_id ';
with dm.query1 do
begin
Close;
SQL.Clear;
SQL.Add (ssql);
open;
last;
DBGrid1.DataSource := DataSource2;
//假定 原来 DBGrid1.DataSource := DataSource1
// DataSource1.DataSet := Query1
end;
錯誤為; [Error] ustaffform.pas(72): Incompatible types: 'TColumnTitle' and 'String' 怎麼辦?????
procedure Tstaffform.FormCreate(Sender: TObject);
var
ssql:string;
begin
inherited;
dm.datasource1.dataset:=dm.query1;
ssql:='select A.sta_id ,A.sta_name , B.dep_name from tab_staff A, tab_department B ';
ssql:=ssql + 'where A.dep_id=B.dep_id order by A.dep_id ';
with dm.query1 do
begin
try
Close;
SQL.Clear;
SQL.Add (ssql);
open;
last;
except
showmessage('不能打開數據庫!');
end;
//showmessage(dm.query1.fields[1].AsString+'zfz');
dbgrid1.datasource:=dm.datasource1;
dbgrid1.columns[0].fieldname:='sta_id';
dbgrid1.columns[1].fieldname:='sta_name';
dbgrid1.columns[2].fieldname:='dep_name';
dbgrid1.columns[0].title:='工號' ; ----------()
dbgrid1.columns[1].title:='姓名'; -----------()
dbgrid1.columns[2].title:='部門'; ----------()
end;
end;end.
還有一個問題;
1個query對應多個DBGrid,所以不能用可視方法實現,只能用語句實現呀!”不正确嗎?
下面這句有標記 -----() 怎麼改??procedure Tstaffform.DBGrid1ColEnter(Sender: TObject);
begin
inherited;
Edit1.Text:=dbgrid1.columns[0].value -----()
end;