線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2337
推到 Plurk!
推到 Facebook!

關於新增、搜尋

答題得分者是:GrandRURU
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-08-28 09:50:40 IP:123.204.xxx.xxx 訂閱
你好
在我的專案中,使用了TabControl 這個元件
去分出A、B頁,A頁新增,B頁搜尋用
可是當我在A頁新增完一筆資料後,馬上在B頁搜尋,會搜尋不到剛新增的資料
可是可以搜尋到原本就建立好在資料庫裡的資料。


編輯記錄
kill42el 重新編輯於 2008-08-28 09:51:22, 註解 關於新增、搜尋‧
kill42el 重新編輯於 2008-09-02 00:24:08, 註解 無‧
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-08-28 10:30:13 IP:203.75.xxx.xxx 未訂閱
[code cpp]
void __fastcall TForm1::Button2Click(TObject *Sender)
if (ADOTable2->State==dsInsert || (ADOTable2->State==dsEdit)
{
ADOTable2->Post();
}
}
[/code]
[code cpp]
void __fastcall TForm1::Button3Click(TObject *Sender)
{
//...
ADOTable2->Close();

if(!ADOTable2->Active)
{
ADOTable2->Open();
}
///...
}
[/code]
編輯記錄
GrandRURU 重新編輯於 2008-08-28 10:45:20, 註解 無‧
GrandRURU 重新編輯於 2008-08-28 10:45:58, 註解 無‧
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-08-28 15:05:21 IP:210.71.xxx.xxx 訂閱
你好
直接把前輩你的Button2的程式,覆蓋過我原本的程式碼
執行錯誤
if (ADOTable2->State==dsInsert || (ADOTable2->State==dsEdit)
錯誤顯示 在 ||
[C Error]Unit1.cpp(25):E2377 lf statement missing]
於是,我就把||給移除,發現可以執行,但是當按下Button2按鈕時
就跳出
http://delphi.ktop.com.tw/download.php?download=upload/48b64d64c9fe5_未命名.JPG
===================引 用 GrandRURU 文 章===================
[code cpp]
void __fastcall TForm1::Button2Click(TObject *Sender)
if (ADOTable2->State==dsInsert || (ADOTable2->State==dsEdit)
{
ADOTable2->Post();
}
}
[/code]
[code cpp]
void __fastcall TForm1::Button3Click(TObject *Sender)
{
//...
ADOTable2->Close();

if(!ADOTable2->Active)
{
ADOTable2->Open();
}
///...
}
[/code]
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-08-28 16:17:03 IP:203.75.xxx.xxx 未訂閱
[code cpp]
void __fastcall TForm1::Button2Click(TObject *Sender)
if (ADOTable2->State==dsInsert || ADOTable2->State==dsEdit) //多了一個刮弧
{
ADOTable2->Post();
}
}
[/code]
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-08-29 00:51:16 IP:123.204.xxx.xxx 訂閱
你好
[code cpp]
void __fastcall TForm1::Button3Click(TObject *Sender)
{
bool Found ;
ADOTable2->TableName = "會員資料";
ADOTable2->Close();
if(!ADOTable2->Active)
{
ADOTable2->Open();
}
[/code]
前輩指的是多紅色那一段嗎??
但是當執行後,還是出現 找不到資料
===================引 用 GrandRURU 文 章===================
[code cpp]
void __fastcall TForm1::Button3Click(TObject *Sender)
{
//...
ADOTable2->Close();

if(!ADOTable2->Active)
{
ADOTable2->Open();
}
///...
}
[/code]
編輯記錄
kill42el 重新編輯於 2008-08-29 00:54:01, 註解 無‧
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-08-29 02:11:41 IP:118.167.xxx.xxx 未訂閱
你新增的資料確定有存到access裡嗎?
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-08-29 11:35:45 IP:123.204.xxx.xxx 訂閱
謝謝前輩的提醒
我的儲存的地方 指向別的地方去了
可以正常運作了,多謝前輩
對了,想問一下 像我的專案一執行後,在新增那一邊會直接就出現第一筆資料
有沒有辦法,當專案一執行後不會出現資料,就整個空白的
===================引 用 GrandRURU 文 章===================
你新增的資料確定有存到access裡嗎?
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-08-29 13:08:57 IP:203.75.xxx.xxx 未訂閱
完全看你要如何做,你可以一開始先不要open table或是一開始就新增一筆資料等諸如此類

以上
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-08-29 15:54:50 IP:123.204.xxx.xxx 訂閱
謝謝前輩的建議
但~~原本可以很順利的執行的專案,我不懂只是重開機
再執行的時候,按儲存鈕都會這視窗出現
http://delphi.ktop.com.tw/download.php?download=upload/48b64d64c9fe5_未命名.JPG
請問這是什麼意思??

===================引 用 GrandRURU 文 章===================
完全看你要如何做,你可以一開始先不要open table或是一開始就新增一筆資料等諸如此類

以上
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-08-29 17:04:25 IP:203.75.xxx.xxx 未訂閱
請檢查一下你程式啟動時填了什麼值到資料庫而造成key值重復的問題。
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-08-29 21:57:58 IP:123.204.xxx.xxx 訂閱
只是新增姓名、卡號,一直不知道怎麼處理  就重新建一個資料庫。發現可以用!!!
很怕關機後 又出現同樣問題
麻煩前輩,在教我一個問題
就是當我新增一筆資料時,我還有用到DBGrid這元件
要怎樣才能讓DBGrid也出現這筆新資料呢??
謝謝前輩
===================引 用 GrandRURU 文 章===================
請檢查一下你程式啟動時填了什麼值到資料庫而造成key值重復的問題。
編輯記錄
kill42el 重新編輯於 2008-08-29 22:15:36, 註解 無‧
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#12 引用回覆 回覆 發表時間:2008-08-29 22:28:32 IP:220.139.xxx.xxx 未訂閱
你先試著用DBNavigator DBGrid的玩法來練習吧
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#13 引用回覆 回覆 發表時間:2008-08-30 02:10:32 IP:123.204.xxx.xxx 訂閱
要是可以用這兩元件就簡單多了。
前輩阿~我找到一個程式可以寫到DBGrid
[code cpp]

void __fastcall TForm3::BitBtn1Click(TObject *Sender)
{
ADOTable1->Insert();
ADOTable4->FieldByName("RFID")->AsString =DBEdit1->DataField ;
ADOTable4->FieldByName("Name")->AsString = DBEdit2->DataField ;

ADOTable4->Post() ;
}
[/code]
http://delphi.ktop.com.tw/download.php?download=upload/48b64d64c9fe5_未命名.JPG
===================引 用 GrandRURU 文 章===================
你先試著用DBNavigator DBGrid的玩法來練習吧
編輯記錄
kill42el 重新編輯於 2008-08-30 02:11:20, 註解 無‧
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#14 引用回覆 回覆 發表時間:2008-08-30 09:51:13 IP:220.139.xxx.xxx 未訂閱
它只說你的table4不在insert或edit的狀態

書上應該有寫到如何自己寫dbnavigator內的功能吧

不明白你為何要用兩個TTable來控制相同的table
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#15 引用回覆 回覆 發表時間:2008-08-30 11:17:39 IP:123.204.xxx.xxx 訂閱
因為,我要建立起 主副明'細  所才需要用到2個Table

我找 過全部學校圖書館有關C Builder 6的書,關於DBNavigator這元件

只是介紹如何使用,有新增、下一筆、上一筆...等等

並沒有去介紹到說如何自己去寫DBNavigator的功能

才會一直麻煩前輩來幫我解答問題
===================引 用 GrandRURU 文 章===================
它只說你的table4不在insert或edit的狀態

書上應該有寫到如何自己寫dbnavigator內的功能吧

不明白你為何要用兩個TTable來控制相同的table
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#16 引用回覆 回覆 發表時間:2008-08-30 11:41:14 IP:123.204.xxx.xxx 訂閱
不好意思,前輩
可以在問一下嗎??
像Edit這元件,要清除就打上Edit1->Clear();
那如果要清除DBGrid裡面的資料,要如何打程式碼呢??
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#17 引用回覆 回覆 發表時間:2008-08-31 00:37:41 IP:118.167.xxx.xxx 未訂閱
如果是主副明細的話,你應該看製作Master/Detail 章節,這比較符合你現在的需求
野人獻曝的小文章 BCB的一些小書評,建議新手先來看看這一篇
這裡面提及有關資料庫的書籍都寫得很棒,建議你再去圖書館找找看。

如果沒有的話,也強烈建議你到二手拍賣網去找找,這些都很值得收藏

===================引 用 kill42el 文 章===================
因為,我要建立起 主副明'細 所才需要用到2個Table

我找 過全部學校圖書館有關C Builder 6的書,關於DBNavigator這元件

只是介紹如何使用,有新增、下一筆、上一筆...等等

並沒有去介紹到說如何自己去寫DBNavigator的功能
======================================


一般比較不建議去對資料感知元件做處理(因為會連資料庫的內容一起變動)

你可以從datasource或是將dbedit的資料導到edit元件做處理後顯示,會比較冾當。

===================引 用 kill42el 文 章===================

不好意思,前輩
可以在問一下嗎??
像Edit這元件,要清除就打上Edit1->Clear();
那如果要清除DBGrid裡面的資料,要如何打程式碼呢??
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#18 引用回覆 回覆 發表時間:2008-09-02 00:23:35 IP:123.204.xxx.xxx 訂閱
謝謝前輩的教導
kill42el
一般會員


發表:30
回覆:50
積分:16
註冊:2008-06-04

發送簡訊給我
#19 引用回覆 回覆 發表時間:2008-09-05 23:50:48 IP:123.204.xxx.xxx 訂閱
抱歉,前輩,雖然已經結案,但我還想向你請教一下
您說利用edit去顯示,但我上頭的學長說最好可以利用DBGrid去顯示。問學長說那要怎麼寫,學長只說看書
而剛好從書上發現有可以寫入DBGrid的程式碼
[code cpp]
ADOTable2->Insert() ;
ADOTable2->FieldByName("RFID")->AsString =Edit3->Text;
ADOTable2->FieldByName("Name")->AsString = StrToInt(Edit4->Text);
ADOTable2->Post();
[/code]
測試可以再DBGrid一行新資料。

可問題是當跟前輩之前教的做結合
[code cpp]
ADOTable1->Insert();
if (ADOTable1->State==dsInsert || ADOTable1->State==dsEdit)
{
ADOTable1->Post();
}
ADOTable2->Insert() ;
ADOTable2->FieldByName("RFID")->AsString =Edit3->Text;
ADOTable2->FieldByName("Name")->AsString = StrToInt(Edit4->Text);
ADOTable2->Post();
[/code]
則會出現
http://delphi.ktop.com.tw/download.php?download=upload/48b64d64c9fe5_未命名.JPG
請問我該怎麼解決??
============引 用 GrandRURU 文 章==================


一般比較不建議去對資料感知元件做處理(因為會連資料庫的內容一起變動)

你可以從datasource或是將dbedit的資料導到edit元件做處理後顯示,會比較冾當。

編輯記錄
kill42el 重新編輯於 2008-09-05 23:54:20, 註解 無‧
kill42el 重新編輯於 2008-09-05 23:57:33, 註解 無‧
系統時間:2017-10-20 9:23:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!