2017-02-21 44 views
0

我正在爲大學(英國大學,而不是大學)的項目工作,它很小,但合併了一些SQL,因爲我有一個數據庫來跟蹤用戶的一切確實。在我的帳戶創建頁面我有一個運行對我的數據庫這個SQL查詢:有一個SQL字符串沒有實際做任何事情的問題

INSERT INTO Users (UName, FName, SName, PWord, ULevel) 
VALUES (:pmUName, :pmFName, :pmSName, :pmPWord, :pmULevel); 

凡是與:pm開始是,我可以在Delphi控制的參數,我只是想知道,如果有一些大型關鍵我錯過了,因爲它在執行時沒有插入表Users

+0

什麼日誌說? (他們仍然教delphi,哇) – NimChimpsky

+0

可能是一切,沒有表架構和錯誤日誌,它是不可能回答。但是,你很奇怪你只用一個'ULevel''' INSERT'一個_new記錄_而沒有其他數據。一個瘋狂的猜測是,你已經省略了不可空的列,沒有默認的插入... – Dario

+0

我沒有任何日誌,我不知道我怎麼會生成一個,但它似乎沒有甚至沒有觸及數據庫,我正在運行一個Access 2003數據庫,因爲這似乎是德爾福在這種類型的連接上唯一會與之通信的東西(我認爲這是一個較舊的協議,我在XE4中使用它,但這是我'現在用在XE10中)。添加StevenMcGovern建議的東西,表格的佈局看起來像[this](http://imgur.com/a/eFtVT),並且我已經將ULevel移動到看起來像編輯後的原始文章 – JReid99

回答

0

根據您使用的數據庫,您可能正在需要提交的事務中運行SQL? (即BEGIN;通常開始一個事務,並且如果在任何SQL中存在一些錯誤,則COMMIT將提交一切或ROLLBACK)。

但作爲第一步,您的日誌將顯示NimChimpsky建議的實際錯誤。

0

這可能會得到我的問題downvoted,但跟蹤通過代碼一百萬次後,我注意到我的用戶名的驗證被顛倒過來,所以如果用戶名已經存在,它會通過,但如果它不會返回false而不是執行SQL。我很久以前就寫了這個特定的代碼,直到我有一個朋友來看這個項目,並且他們決定追蹤它,才認爲這會是問題。 SQL沒有任何實際的錯誤,對於專門診斷非問題的人致以很多的歉意。

TLDR: 確保代碼執行你認爲之前的代碼是錯誤的

+0

很高興你把它整理出來,它只是證明兩雙眼睛比一隻眼睛更好。另一件事是嘗試向某人解釋你的代碼正在做什麼。但是,這不應該在這裏作出回答,所以請將其替換爲您的q編輯(儘管您可能會發現它被選爲脫離主題)。 – MartynA

+0

我聽說過一種叫做橡皮鴨的解決方案,程序員在這裏解釋他們的橡皮鴨解決方案,並幫助他們調試問題。我可能不得不去買鴨子...... – JReid99

相關問題