班表查詢 |
答題得分者是:careychen
|
ru226531
一般會員 發表:12 回覆:10 積分:4 註冊:2008-05-06 發送簡訊給我 |
我做了一個類似課表的班表
我寫了一段查詢 雖然可以執行 但當我搜尋之後便出錯 我是不是有什麼地方寫錯了呢?>"< 我有兩個資料表employees、clinic 在這裡所使用的EQuery1是zeos元件的ZQuery 我要查出employees.c_no=clinic.c_no的資料 而我在EQuery(employees的Query)上的SQL屬性上寫 var Form13: TForm13; c_no: array[0..21] of TEdit; e_name: array[0..21] of TEdit; uses Unit5, Unit1, Unit2, Unit10, Unit11, Unit12, Unit3, Unit4, Unit6, Unit7, Unit8, Unit9; procedure TForm13.BitBtn3Click(Sender: TObject); var m:integer; begin for m:=0 to 20 do begin c_no[m]:=TEdit.Create(module.EQuery1); c_no[m].Parent:=Form1; c_no[m].Text:=''; c_no[m].Left:=80 80*(m div 3); c_no[m].Top:=80 40*(m mod 3); c_no[m].Width:=80; c_no[m].Height:=20; c_no[m].Show; label1.Caption:=module.EQuery1.fieldvalues['employees.c_no'] ; m:=0; while not module.EQuery1.Eof do begin c_no[m].text:=module.EQuery1.fieldvalues['employees.c_no']; e_name[m].Text:=module.EQuery1.fieldvalues['employees.e_name'] ' ' module.EQuery1.fields.fields[0].AsString; module.EQuery1.next; m:=m 1; end; end; Undeclared identifier:'Parameters' 還有 Missing operator or semicolon 請問以上該怎麼解決呢 或是我少了什麼步驟? |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
一下 EQuery 一下 ETable 你的程式還要再確認一下!!
===================引 用 ru226531 文 章=================== 我做了一個類似課表的班表 我寫了一段查詢 雖然可以執行 但當我搜尋之後便出錯 我是不是有什麼地方寫錯了呢?>"< 我有兩個資料表employees、clinic 我要查出employees.c_no=clinic.c_no的資料 而我在EQuery(employees的Query)上的SQL屬性上寫 procedure TForm13.BitBtn3Click(Sender: TObject); var m:integer; begin for m:=0 to 20 do begin c_no[m]:=TEdit.Create(module.EQuery1); c_no[m].Parent:=Form1; c_no[m].Text:=''; c_no[m].Left:=80 80*(m div 3); c_no[m].Top:=80 40*(m mod 3); c_no[m].Width:=80; c_no[m].Height:=20; c_no[m].Show; label1.Caption:=module.EQuery1.fieldvalues['employees.c_no'] ; m:=0; while not module.EQuery1.Eof do begin c_no[m].text:=module.EQuery1.fieldvalues['employees.c_no']; e_name[m].Text:=module.EQuery1.fieldvalues['employees.e_name'] ' ' module.EQuery1.fields.fields[0].AsString; module.EQuery1.next; m:=m 1; end; end; Project Project1.exe raised exception class EDatabase Error with message 'EQuery1:Field'employees.c_no'not found'.Process stopped. Use Step or Run to continue. 這是班表的版面
------
價值的展現,來自於你用哪一個角度來看待它!! |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
看不出來EQuery1跟ETable1的關係
由錯誤訊息看來 module.Etable1.fieldByName('c_no').asstring:=edit1.text; 這段Etable1應該沒有c_no吧? 怪怪地,程式沒貼完整 ===================引 用 ru226531 文 章=================== module.EQuery1.Clear; module.EQuery1.Sql.Add('select * from employees where e_no=:e01'); module.Etable1.fieldByName('c_no').asstring:=edit1.text; module.Etable1.Active:=True; |
chih_kuan
中階會員 發表:38 回覆:82 積分:54 註冊:2003-02-20 發送簡訊給我 |
|
ru226531
一般會員 發表:12 回覆:10 積分:4 註冊:2008-05-06 發送簡訊給我 |
|
chih_kuan
中階會員 發表:38 回覆:82 積分:54 註冊:2003-02-20 發送簡訊給我 |
|
ru226531
一般會員 發表:12 回覆:10 積分:4 註冊:2008-05-06 發送簡訊給我 |
我去查資料說fieldbyname與parameters的用法差不多
如果要用zeos的ZQuery元件去寫fieldbyname 要如何寫呢>"< 我有嘗試寫了一段 procedure TForm13.BitBtn3Click(Sender: TObject); var m:integer; begin bn.EMPtable1.active:=false; bn.Ctable1.fieldbyname('c_no').value:=edit1.text; bn.EMPTable1.active:=true; bn.ctable1.fieldByName('c_no').asstring:=edit1.text; bn.ctable1.Active:=True; Label1.Caption:=module.EQuery1.SQL.Text; for m:=0 to 20 do begin c_no[m]:=TEdit.Create(module.EQuery1); c_no[m].Parent:=Form1; c_no[m].Text:=''; c_no[m].Left:=80 80*(m div 3); c_no[m].Top:=80 40*(m mod 3); c_no[m].Width:=80; c_no[m].Height:=20; c_no[m].Show; e_name[m]:=TEdit.Create(module.EQuery1); e_name[m].Parent:=Form1; e_name[m].Text:=''; e_name[m].Left:=80 80*(m div 3); e_name[m].Top:=100 40*(m mod 3); e_name[m].Width:=80; e_name[m].Height:=20; e_name[m].font.size:=2; e_name[m].Color:=clbtnface; e_name[m].Show; end; label1.Caption:=module.ctable1.fieldvalues['clinic.c_no'] ; m:=0; while not module.EQuery1.Eof do begin c_no[m].text:=module.EQuery1.fieldvalues['employees.c_no']; e_name[m].Text:=module.EQuery1.fieldvalues['employees.e_name'] ' ' module.EQuery1.fields.fields[0].AsString; module.EQuery1.next; m:=m 1; end; end; 但這樣還是出現了錯誤訊息 這次是 CTable1:Field 'clinic.c_no' not found 不好意思麻煩大大了Q_Q ===================引 用 chih_kuan 文 章=================== Undeclared identifier:'Parameters' =>表示...EQuery 這東西..根本沒有 Parameters 這個屬性.. Missing operator or semicolon =>可能是 Paramaters 那行有誤.導致後面..Code 在編排上..被Compiler 認定為有問題.. |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
你去哪查到的資料寫 FieldByName 和 Parameters 的用法差不多的呢??
寫 Parameters 的用法是在當你的 sql 語法內容是不固定的,需要在程式的部份代入 Parameters 然後把整個串好的 SQL 指令送給資料庫 而 FieldByName 是當資料回傳時,讀出回傳的資料內容用的,一去一回的用法不同要注意!! 你這次丟出來的程式,跟你第一次丟出來時不是差不多嗎? 元件已經混用了,沒辦法查出正確的資料!! bn.EMPtable1.active:=false; bn.Ctable1.fieldbyname('c_no').value:=edit1.text; // 尚未 Open ,而且這種寫法是把值寫回資料庫 bn.EMPTable1.active:=true; bn.ctable1.fieldByName('c_no').asstring:=edit1.text; bn.ctable1.Active:=True; 你後來修正的結果應該是對的,但出現的那個錯誤訊息 Missing operator or semicolon <== 這應該是有停在錯誤的那一行,是哪一行? ===================引 用 ru226531 文 章=================== 我去查資料說fieldbyname與parameters的用法差不多 如果要用zeos的ZQuery元件去寫fieldbyname 要如何寫呢>"< 我有嘗試寫了一段 procedure TForm13.BitBtn3Click(Sender: TObject); var m:integer; begin bn.EMPtable1.active:=false; bn.Ctable1.fieldbyname('c_no').value:=edit1.text; bn.EMPTable1.active:=true; bn.ctable1.fieldByName('c_no').asstring:=edit1.text; bn.ctable1.Active:=True; Label1.Caption:=module.EQuery1.SQL.Text; for m:=0 to 20 do begin c_no[m]:=TEdit.Create(module.EQuery1); c_no[m].Parent:=Form1; c_no[m].Text:=''; c_no[m].Left:=80 80*(m div 3); c_no[m].Top:=80 40*(m mod 3); c_no[m].Width:=80; c_no[m].Height:=20; c_no[m].Show; e_name[m]:=TEdit.Create(module.EQuery1); e_name[m].Parent:=Form1; e_name[m].Text:=''; e_name[m].Left:=80 80*(m div 3); e_name[m].Top:=100 40*(m mod 3); e_name[m].Width:=80; e_name[m].Height:=20; e_name[m].font.size:=2; e_name[m].Color:=clbtnface; e_name[m].Show; end; label1.Caption:=module.ctable1.fieldvalues['clinic.c_no'] ; m:=0; while not module.EQuery1.Eof do begin c_no[m].text:=module.EQuery1.fieldvalues['employees.c_no']; e_name[m].Text:=module.EQuery1.fieldvalues['employees.e_name'] ' ' module.EQuery1.fields.fields[0].AsString; module.EQuery1.next; m:=m 1; end; end; 但這樣還是出現了錯誤訊息 這次是 CTable1:Field 'clinic.c_no' not found 不好意思麻煩大大了Q_Q ===================引 用 chih_kuan 文 章=================== Undeclared identifier:'Parameters' =>表示...EQuery 這東西..根本沒有 Parameters 這個屬性.. Missing operator or semicolon =>可能是 Paramaters 那行有誤.導致後面..Code 在編排上..被Compiler 認定為有問題..
------
價值的展現,來自於你用哪一個角度來看待它!! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |