Board logo

主題: [資訊電機] [求助]急!程式的問題 [打印本頁]

發表人: 劭鵬    時間: 2004-8-31 03:29 PM     主題: [求助]急!程式的問題

如果我要將N寫入table中的兩個欄位(欄位長度為1),但必須判斷欄位中是不是已經有值,空白則寫入,有值的話就不理他,請問這樣的判斷對嗎?

if ((strlen(a)>=1)&&(strlen(b)>=1))
       {
       EXEC SQL AT A_DB INSERT into tb_a
                           (
                            a,
                            b
                           )
                           VALUES
                           (
                            'N',
                            'N'
                           );

[劭鵬 在 2004-8-31 03:44 PM 作了最後編輯]

[劭鵬 在 2004-8-31 03:44 PM 作了最後編輯]

[劭鵬 在 2004-8-31 03:47 PM 作了最後編輯]

[劭鵬 在 2004-8-31 04:16 PM 作了最後編輯]

[劭鵬 在 2004-8-31 05:05 PM 作了最後編輯]
發表人: 檸檬    時間: 2004-8-31 04:50 PM

這什麼語言....還有寫程式這樣習慣不太好@@

if ((strlen(a)>=1)&&(strlen(b)>=1)) {
   EXEC SQL AT A_DB INSERT into tb_a (a,b) VALUES ('N','N');
}

[檸檬 在 2004-8-31 04:52 PM 作了最後編輯]
發表人: 劭鵬    時間: 2004-8-31 04:54 PM

這是pro*c

那樣判斷對嗎?
發表人: 檸檬    時間: 2004-8-31 05:01 PM


引用:
劭鵬寫到:
這是pro*c

那樣判斷對嗎?


沒學也沒聽過pro*c....

可能幫不上忙....
不過有些用詞也怪怪的....表單是指資料庫??
a,b是table的欄位還是表單的欄位....
發表人: 劭鵬    時間: 2004-8-31 05:04 PM

a,b是table的欄位
發表人: 檸檬    時間: 2004-8-31 05:07 PM

那為什麼要去判斷a,b這兩個欄位的長度?? (pro*c可以直接這樣抓資料庫的資訊??)

a,b長度已經是1了...條件恆成立, 也不需要麻煩if來判斷

---
題目好像有改....

把strlen(a)裡面的a改成資料庫欄位裡的值應該就對了, 只差語法不同的問題(真的不會pro*c)
這樣判斷應該是沒錯....

[檸檬 在 2004-8-31 05:13 PM 作了最後編輯]
發表人: 劭鵬    時間: 2004-8-31 05:11 PM

我不是要判斷a,b兩個欄位的長度,是要判斷欄位中是不是已經有值了
發表人: 檸檬    時間: 2004-8-31 05:23 PM


引用:
劭鵬寫到:
我不是要判斷a,b兩個欄位的長度,是要判斷欄位中是不是已經有值了

....
原來我學過pro*c....只是完全沒實際寫過 XD

//應該要先有query,假設兩個欄位都是integer,又假設SQL不需要WHERE判斷
int a,b;
EXEC SQL SELECT a,b INTO :a,:b
                FROM tablename
//然後再來判斷a,b是否有值
if ( a && b ) {
   EXEC SQL AT A_DB INSERT into tb_a (a,b) VALUES ('N','N');
}

接下來就自己跑看看吧....
又不是畫卡時代....程式有問題就先run囉

[檸檬 在 2004-8-31 05:25 PM 作了最後編輯]
發表人: 劭鵬    時間: 2004-8-31 05:26 PM

多謝論壇第一酸大大的指導...:icons8
發表人: 檸檬    時間: 2004-8-31 05:30 PM


引用:
劭鵬寫到:
多謝論壇第一酸大大的指導...:icons8


我也沒很有把握 Orz....
不過接下來問題應該就不大了
發表人: 劭鵬    時間: 2004-8-31 05:31 PM

那我這個程式白痴在自己去踹踹看吧...
發表人: chaeung    時間: 2004-8-31 06:30 PM

個人獨斷的偏見:

看樣子是SQL的script... 不過照樓主說的好像有點不太嚴謹?
先不說資料型態, 這兩個欄位的資料在宣告長度為1的時候就已經是1了, strlen永遠==1, 沒用...
如果這兩個欄位是會反覆使用的, 那麼不管是什麼都直接寫入資料不就得了?
如果是用作判斷條件, 以長度而非內容來判斷也很不符邏輯.

總之...
在下判斷這應該是學校作業或考題? 課本/教材講解範例? 實務中沒這種脫褲子排氣的問題...

以上
發表人: Vic    時間: 2004-9-2 11:26 AM


引用:
檸檬寫到:

引用:
劭鵬寫到:
我不是要判斷a,b兩個欄位的長度,是要判斷欄位中是不是已經有值了

....
原來我學過pro*c....只是完全沒實際寫過 XD

//應該要先有query,假設兩個欄位都是integer,又假設SQL不需要WHERE判斷
int a,b;
EXEC SQL SELECT a,b INTO :a,:b
                FROM tablename
//然後再來判斷a,b是否有值
if ( a && b ) {
   EXEC SQL AT A_DB INSERT into tb_a (a,b) VALUES ('N','N');
}

接下來就自己跑看看吧....
又不是畫卡時代....程式有問題就先run囉


熊沒學過pro* c 不過看劭鵬的要求~

引用:
但必須判斷欄位中是不是已經有值,空白則寫入,有值的話就不理他


那if內的criteria應該是
if ( !a && !b ) { //因為要a與b都是空白值 , 才執行下面的code, 不過! (= Not) 這方法是language dependence, 不肯定pro* c有沒有

如果直接如!不行~

if ( (a == "" || a == null) && (b == "" || b == null)) {  //不知道pro* c的空白值是用"" or null or undefined, 所以只好這樣寫




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0