เพียงเพื่อ noobs super อย่างฉันสงสัยว่าหรือสิ่งที่ผู้คนหมายถึงโดย
PRAGMA table_info('table_name')
คุณต้องการที่จะใช้ใช้เป็นคำสั่งเตรียมของคุณที่แสดงด้านล่าง การทำเช่นนั้นจะเลือกตารางที่มีลักษณะเช่นนี้ยกเว้นจะเติมด้วยค่าที่เกี่ยวข้องกับตารางของคุณ
cid name type notnull dflt_value pk
---------- ---------- ---------- ---------- ---------- ----------
0 id integer 99 1
1 name 0 0
โดยที่ id และชื่อเป็นชื่อจริงของคอลัมน์ของคุณ ดังนั้นเพื่อให้ได้ค่านั้นคุณต้องเลือกชื่อคอลัมน์โดยใช้:
//returns the name
sqlite3_column_text(stmt, 1);
//returns the type
sqlite3_column_text(stmt, 2);
ซึ่งจะส่งคืนชื่อคอลัมน์ของแถวปัจจุบัน ที่จะคว้าพวกเขาทั้งหมดหรือหาคนที่คุณต้องการคุณจะต้องวนซ้ำแถวทั้งหมด วิธีที่ง่ายที่สุดในการทำเช่นนั้นจะอยู่ในลักษณะด้านล่าง
//where rc is an int variable if wondering :/
rc = sqlite3_prepare_v2(dbPointer, "pragma table_info ('your table name goes here')", -1, &stmt, NULL);
if (rc==SQLITE_OK)
{
//will continue to go down the rows (columns in your table) till there are no more
while(sqlite3_step(stmt) == SQLITE_ROW)
{
sprintf(colName, "%s", sqlite3_column_text(stmt, 1));
//do something with colName because it contains the column's name
}
}
SQLite.swift
ให้ดูคำถามและคำตอบนี้สำหรับรายการชื่อคอลัมน์แบบง่ายหรือชื่อนี้สำหรับปัญหาการย้ายข้อมูล