を検出する:sqlite3の:あなたはこのようなテーブルを作成した場合どのように、SQLite3のを使用してROWIDエイリアス列(主キー)
CREATE TABLE MyTable (
id int primary key,
--define other columns here--
)
それはsqlite3_column_type(0)
は常にSQLITE_NULL
を返し判明します。 I read on a bitの場合、実際にはこの列は内部rowid
フィールドのエイリアスであるため、これは設計によるものです。
まだ、特定の列がrowid
フィールドの/別名であると判断するためのプログラム的な方法は何ですか?
(おそらく関連する、私は現在レコードのフィールドがNULL
を保持しているかどうかを決定するためにsqlite3_column_type(x)==SQLITE_NULL
を使用できますか?)
は 'TABLEテストを作成します(ID INTEGER PRIMARY KEY、...)を試してみました'、それは動作しますが、ありがとう! –
@StijnSanders - "特定の列を決定するためのプログラム的な方法は' 'rowid'のエイリアスですか? 'id integer primary key'が' id integer primary key asc'と同じであることをテスト/確認したいと思います。 – aaaaaa
いいえ、しかし、今戻って考えると、私はあなたが必要とするべきではないと思います。答えはソースにあります。 Cのデバッガを使ってsqliteが 'integer primary key asc'に何をするのかを確認してください。 –