以使用QSqlQuery向資料庫中插入資料為例,做一個小結
阿新 • • 發佈:2018-12-25
背景:
最近在使用Qt+SQLite寫一個本地資料庫管理程式(使用者不懂SQL),在寫向資料庫中插入資料的
相關的函式時,我遇到了幾個問題(暫時就這些):
1.向指定欄位插入指定資料時,讀取到的資料都是字串型別,然而不同欄位的資料型別是不同的,這
裡需要獲取不同欄位的資料型別,再做型別轉換
2.使用QSqlQuery插入資料時,具體實現的考慮
3.在實現一個功能時,是先將功能做出來,然後對一些最初未考慮到的問題慢慢補足,還是先儘可能考
慮到所有情況,再實現相關功能
4.此時某個函式的實現,是否有利於以後的優化,重構,擴充套件
我的嘗試過的解決辦法:
問題1:將使用者輸入的字串切分,用QStringList儲存(將被插入的資料與對應欄位名,表名),取出資料
庫中對應表的所有欄位和該欄位對應資料型別名,通過比較,得到使用者輸入的各個資料應被轉換為的數
據型別,接著做型別轉換
問題2:插入資料時,分為插入一行資料和插入多行資料,而QSqlQuery正好提供了對應的方法,但在實
現多行資料插入時,既可以使用QSqlQuery提供的插入多行資料的方法,也可以先實現插入一行資料,再
插入多行時,迴圈呼叫插入一行資料的函式
在實現插入函式時,是直接將使用者輸入的資料傳入函式,還是先在另一個函式中對使用者資料進行處理,再
傳入插入函式?
使用QSqlQuery插入資料時,使用何種程式碼風格(ODBC等)
問題3,4:我是先實現出來,判斷此時想到的實現方法是否可行,再進行修飾
具體程式碼等全部做完再貼吧。