2016-05-18 10 views
0

私は既存のSQLite DBをWinDev Mobile 21で更新しようとしています.DBにはデータが保存されており、失いたくありません。WinDev MobileのSQLite DBを更新してください

私は、テーブルに列を追加するプロジェクトの分析を更新しました。そして、.dbファイルの構造が予想と異なっているため、アプリケーションはそれを開くことができません。

まず、SQLの「ATER TABLE」ステートメントを使用して、新しいカラムを.dbファイルに追加することを考えましたが、どういうことがあるのか​​分かりません。だから私はオープンする前に古いDBに接続しようとしました、既存のデータを一時的なデータソースにコピーし、ファイルを削除し、新しい構造で新しいファイルを作成し、そこに保存されたデータをコピーします。

これは私が試したコードです。info関数はレコード数を返さなければなりませんが、0を返します。HOpenConnection()とHExecuteSQLQuery()は成功しています。

ProductesTemp is Data Source 

HDescribeConnection("Temp","","","/sdcard/Android/data/com.dbases/ficheret.db/ficheret.db","ficheret",hNativeAccessSQLite,hOReadWrite) 

IF HOpenConnection("Temp") THEN 

IF HExecuteSQLQuery(ProductesTemp,"Temp",hQueryDefault,"SELECT * FROM Productes") THEN 

    Info("HRecNum: " + HRecNum(ProductesTemp)) 

ELSE 
    Info("HExecuteSQLQuery Error", HErrorInfo(hErrFullDetails)) 
END 

ELSE 
    Info("HOpenConnection Error", HErrorInfo(hErrFullDetails)) 
END 

答えて

0

HOpenConnection()およびHExecuteSQLQuery()が正常に実行されているかどうかを確認する必要があります。 trueの場合はtrueを返します。 そうしないと、そのようなことで情報を取得する必要があります:それは

IF NOT(HOpenConnection("TEMP")) 
Info(HErrorInfo(hErrFullDetails)) 
END 

何と言っていますか?

+0

HOpenConnection()およびHExecuteSQLQuery()が成功した場合、Info()は "HRecNum:0"を出力します。私はちょうどあなたの提案でコードを更新しました。 –

+0

HexecuteSQLQuery(ProductesTemp、 "Temp"、hQueryWithoutCorrection、 "SELECT * FROM Productes")で試してみることはできますか? – Bidjes

+0

違いはありません –

関連する問題