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

判斷輸入的資料是否重覆

 
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-31 11:21:03 IP:203.69.xxx.xxx 訂閱
我這樣的寫法怎會造成不管輸入什麼資料都會出現編號已存在了
我是在dbedit 的onexit事件下寫的
請各位大大幫我這個新手看看,謝謝
Query1.Close;
query1.sql.Clear;
Query1.SQL.Text := 'Select * From prod Where Prodno = "' DBEditNO.Text '"';
Query1.Open;
if Query1.IsEmpty then begin
ShowMessage(DBEditNO.Text ' 編號已存在');
DBEditNO.clear;
end;

chuang7287
初階會員


發表:1
回覆:20
積分:29
註冊:2002-10-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-31 11:46:49 IP:61.228.xxx.xxx 訂閱
Query1.SQL.Text := 'Select * From prod Where Prodno = "'+ DBEditNO.Text+'"';
改為
Query1.SQL.Add('Select * From prod Where Prodno = "' DBEditNO.Text '"');
if Query1.RecordCount>0 then begin

ShowMessage(DBEditNO.Text ' 編號已存在');

DBEditNO.clear;

end;


------
結案=動力
高手等等我 .... 追隨高手永不懈怠!!
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-31 11:50:45 IP:203.69.xxx.xxx 訂閱
大大還是一樣的結果耶,不過輸入啥資料,都是會出現編號已存在的對話框
chuang7287
初階會員


發表:1
回覆:20
積分:29
註冊:2002-10-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-01-31 12:01:07 IP:61.228.xxx.xxx 訂閱
問一下你showmessage的結果
DBEditNO.Text 是不是都是一樣的?
你可以設定中斷點檢查一下你的DBEditNO.Text值,是否都一樣沒變過?
------
結案=動力
高手等等我 .... 追隨高手永不懈怠!!
stone0924
一般會員


發表:3
回覆:17
積分:14
註冊:2002-08-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-01-31 13:15:57 IP:211.21.xxx.xxx 訂閱

===================引 用 文 章===================
我這樣的寫法怎會造成不管輸入什麼資料都會出現編號已存在了
我是在dbedit 的onexit事件下寫的
請各位大大幫我這個新手看看,謝謝
Query1.Close;
query1.sql.Clear;
Query1.SQL.Text := 'Select * From prod Where Prodno = "' DBEditNO.Text '"';
Query1.Open;
if Query1.IsEmpty then begin
ShowMessage(DBEditNO.Text ' 編號已存在');
DBEditNO.clear;
end;


是否是 if not query1.isEMpty then

showmessage .............
????????????
Stone.

monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-01-31 13:43:18 IP:203.69.xxx.xxx 訂閱
大大我不太懂你的意思耶,而我最主要的目的就是防止user輸入重覆的代號到資料庫裡的
chuang7287
初階會員


發表:1
回覆:20
積分:29
註冊:2002-10-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-01-31 15:03:35 IP:61.228.xxx.xxx 訂閱
依你的作法做了一個,試試吧!
Query1為DBEDIT的資料來源,Query2用來做搜尋用
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, StdCtrls, Mask, DBCtrls, ADODB;

type
TForm1 = class(TForm)
Query1: TADOQuery;
DBEdit1: TDBEdit;
DataSource1: TDataSource;
DBEdit2: TDBEdit;
Query2: TADOQuery;
procedure DBEdit1Exit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
{$R *.dfm}
procedure TForm1.DBEdit1Exit(Sender: TObject);
begin

Query2.Close;
query2.sql.Clear;
Query2.SQL.Add('Select * From Job Where Job_no = ''' DBEdit1.Text '''');
Query2.Open;
if Query2.RecordCount>0 then begin
ShowMessage(DBEdit1.Text ' 編號已存在');
DBEdit1.clear;
end;
end;
end.
我的作法通常不會直接將Edit欄位直接連上資料庫,也就是不使用DBEDIT避免資料鎖定
建議你將所有欄位改為Edit方式.當要新增.修改.刪除時使用SQL語法Insert into ,Update or Delete...

------
結案=動力
高手等等我 .... 追隨高手永不懈怠!!
monkeyhung
一般會員


發表:51
回覆:55
積分:21
註冊:2006-12-16

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-01-31 17:31:31 IP:203.69.xxx.xxx 訂閱
謝謝大大您幫我解決這個問題!!!
系統時間:2024-05-07 5:19:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!