0

SQLite3 を Am1808 プロセッサに接続しました。SDカードにデータを保存しています。

それは非常にうまく機能しています。38 フィールドのテーブルを挿入しました。今、同じテーブルに列を追加したいと思います。そのため、テーブル フィールドのパラメーターを変更し、それに応じて関連ファイルを変更しました。コードは正常にコンパイルされましたが、アプリケーションを実行すると次のエラーが表示されます。

エラー: 「39 個の値に対して 38 列」

変更して作成したテーブルは次のとおりです。

const char *SQL_CREATE_ABCTABLE   = "CREATE TABLE IF NOT EXISTS MilkCollection   \
                (  MilkCollectionId        INTEGER,  \
                   CollectionDate          DATE,  \
                   CollectionShift         UNSIGNED TINYINT,  \
                   MemberId                INTEGER REFERENCES Member(MemberId) ON UPDATE RESTRICT ON DELETE RESTRICT,  \
                   SocietyId               INTEGER REFERENCES Society(SocietyId) ON UPDATE RESTRICT ON DELETE RESTRICT,  \
                   SampleNo                UNSIGNED INTEGER,  \
                   MilkType                UNSIGNED TINYINT,  \
                   Qty                     FLOAT, \
                   ActualQty               FLOAT, \
                   QtyType                 UNSIGNED TINYINT,  \
                   Fat                     FLOAT, \
                   ActualFat               FLOAT, \
                   LRCLR                   FLOAT, \
                   ActualLRCLR             FLOAT, \
                   SNF                     FLOAT, \
                   ActualSNF               FLOAT, \
                   Solid                   FLOAT, \
                   ActualSolid             FLOAT, \
                   Water               FLOAT, \ // I have inserted this field   
                   FatKG                   FLOAT, \
                   ActualFatKG             FLOAT, \
                   SNFKG                   FLOAT, \
                   ActualSNFKG             FLOAT, \
                   Rate                    FLOAT, \
                   Amount                  FLOAT, \
                   ActualAmount            FLOAT, \
                   CanNumber               UNSIGNED INTEGER, \
                   MemberCodeAuto          UNSIGNED TINYINT, \
                   WeightAuto              UNSIGNED TINYINT, \
                   FatAuto                 UNSIGNED TINYINT, \
                   LRCLRAuto               UNSIGNED TINYINT, \
                   SNFAuto                 UNSIGNED TINYINT, \
                   EntryMode               UNSIGNED TINYINT, \
                   CreatedBy               INTEGER REFERENCES UserMaster(UsermasterId) ON UPDATE RESTRICT ON DELETE RESTRICT, \
                   CreatedOn               DATE, \
                   UpdatedBy               INTEGER REFERENCES UserMaster(UsermasterId) ON UPDATE RESTRICT ON DELETE RESTRICT, \
                   UpdatedOn               DATE, \
                   FlagGSM                 UNSIGNED TINYINT, \
                   FlagUSB                 UNSIGNED TINYINT, \
                   PRIMARY KEY (MilkCollectionId) )";

このテーブルを作成したら、古いデータベース ファイルを削除します。

私はまだこのエラーが発生しています。

4

3 に答える 3

0

SQLlite と AM1808 プロセッサを統合したことを知ってよかったです。現在、私は同じことに取り組んでいます。SQLliteのソースを取得する方法、プロセッサ用にコンパイルする方法、およびcから作成、テーブルを挿入するためのサンプルアプリケーションなどを教えてください.

于 2014-01-18T12:47:32.573 に答える
0

コマンドには、39 個の列名がありますが、 /の値INSERTは 38 個しかありません。NULL?

于 2012-10-06T07:48:53.423 に答える