indexFieldNames |
答題得分者是:P.D.
|
g9614721
一般會員 發表:27 回覆:51 積分:15 註冊:2008-07-23 發送簡訊給我 |
--------------------------------------------------------------------------------------------------
private { Private declarations } procedure setindex; //自訂的程序 (下面是新增兩個Radiobutton 分別改成 indexcustno 和 indexcompany) procedure TForm1.indexcustnoClick(Sender: TObject); begin //變更索引 setindex; end; procedure TForm1.indexcompanyClick(Sender: TObject); begin //變更索引 setindex; end; procedure tform1.setindex; begin //只有Table1的State是在瀏覽模式時, 我們才允許變更索引 if Table1.State <> dsBrowse then Exit; if IndexCustNo.Checked then //以客戶編號做索引 Table1.IndexFieldNames := 'CustNo'; if IndexCompany.Checked then //以客戶名稱做索引 Table1.IndexFieldNames := 'Company'; -------------------------------------------------------------------------------------------- 以上 我是照著書本作的 書本是套用DBDEMOS內建的資料庫customer.db 欄位 custno 型態N 索引* 欄位 company 型態A 30 我用我寫的程式 套用DBDEMOS的CUSTOMER.DB就可以 但一換上自己創建的TABLE 卻不行 欄位型態 及大小 都和 DBDEMOS的customer.db一樣 但還是發生錯誤 "project project1.exe raised exeption class EDatabaseError with message 'Table1:No index for fields 'company '' . process stopped. use step or run to continue " 請問是哪裡沒弄好呢? |
frappe
中階會員 發表:88 回覆:114 積分:95 註冊:2008-10-21 發送簡訊給我 |
IndexFieldNames並不是真的將資料庫的索引更改,
而是設定程式要使用資料庫哪個索引欄位 因為一張表可能有多個索引,而IndexFieldNames設定索引後,資料顯示會跟著索引排序 你的資料庫company欄位沒設索引當然會出錯^^ ===================引 用 g9614721 文 章=================== -------------------------------------------------------------------------------------------------- private { Private declarations } procedure setindex; //自訂的程序 (下面是新增兩個Radiobutton 分別改成 indexcustno 和 indexcompany) procedure TForm1.indexcustnoClick(Sender: TObject); begin //變更索引 setindex; end; procedure TForm1.indexcompanyClick(Sender: TObject); begin //變更索引 setindex; end; procedure tform1.setindex; begin //只有Table1的State是在瀏覽模式時, 我們才允許變更索引 if Table1.State <> dsBrowse then Exit; if IndexCustNo.Checked then //以客戶編號做索引 Table1.IndexFieldNames := 'CustNo'; if IndexCompany.Checked then //以客戶名稱做索引 Table1.IndexFieldNames := 'Company'; -------------------------------------------------------------------------------------------- 以上 我是照著書本作的 書本是套用DBDEMOS內建的資料庫customer.db 欄位 custno 型態N 索引* 欄位 company 型態A 30 我用我寫的程式 套用DBDEMOS的CUSTOMER.DB就可以 但一換上自己創建的TABLE 卻不行 欄位型態 及大小 都和 DBDEMOS的customer.db一樣 但還是發生錯誤 "project project1.exe raised exeption class EDatabaseError with message 'Table1:No index for fields 'company '' . process stopped. use step or run to continue " 請問是哪裡沒弄好呢? |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
g9614721
一般會員 發表:27 回覆:51 積分:15 註冊:2008-07-23 發送簡訊給我 |
可是我看DBDEMOS的CUSTOMER.DB
他索引只有custno company 並沒有索引! 另外我也試過 將company也設定索引 還是不行= =|| ===================引 用 frappe 文 章=================== IndexFieldNames並不是真的將資料庫的索引更改, 而是設定程式要使用資料庫哪個索引欄位 因為一張表可能有多個索引,而IndexFieldNames設定索引後,資料顯示會跟著索引排序 你的資料庫company欄位沒設索引當然會出錯^^ ===================引 用 g9614721 文 章=================== -------------------------------------------------------------------------------------------------- private { Private declarations } procedure setindex; //自訂的程序 (下面是新增兩個Radiobutton 分別改成 indexcustno 和 indexcompany) procedure TForm1.indexcustnoClick(Sender: TObject); begin //變更索引 setindex; end; procedure TForm1.indexcompanyClick(Sender: TObject); begin //變更索引 setindex; end; procedure tform1.setindex; begin //只有Table1的State是在瀏覽模式時, 我們才允許變更索引 if Table1.State <> dsBrowse then Exit; if IndexCustNo.Checked then //以客戶編號做索引 Table1.IndexFieldNames := 'CustNo'; if IndexCompany.Checked then //以客戶名稱做索引 Table1.IndexFieldNames := 'Company'; -------------------------------------------------------------------------------------------- 以上 我是照著書本作的 書本是套用DBDEMOS內建的資料庫customer.db 欄位 custno 型態N 索引* 欄位 company 型態A 30 我用我寫的程式 套用DBDEMOS的CUSTOMER.DB就可以 但一換上自己創建的TABLE 卻不行 欄位型態 及大小 都和 DBDEMOS的customer.db一樣 但還是發生錯誤 "project project1.exe raised exeption class EDatabaseError with message 'Table1:No index for fields 'company '' . process stopped. use step or run to continue " 請問是哪裡沒弄好呢?
編輯記錄
g9614721 重新編輯於 2009-02-12 18:14:00, 註解 無‧
|
g9614721
一般會員 發表:27 回覆:51 積分:15 註冊:2008-07-23 發送簡訊給我 |
我有看到書中提到 customer.db 的primary key 是 Custno
請問如何設定 primary key & secondary key 呢? ===================引 用 P.D. 文 章=================== 你這裡有兩個INDEX, 其中一個應該為 PRIMARY INDEX, 另一個為 SECONDARY INDEX, 使用書上的有建立實質索引檔出來, 你自己開的資料庫有建立出這兩個索引檔, 如果有建立, DB的架構應該可以看到 XXXX.XG0, XXXX.YG0, XXXX.XG1, XXXXX.YG1 之類的索引檔
編輯記錄
g9614721 重新編輯於 2009-02-12 19:17:30, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |