다음과 같은 문장이 있습니다. SQLite 쿼리에 변수 삽입하기
const QString createSQL = "CREATE TABLE customer (x INTEGER PRIMARY KEY ASC, y, z);" ;
는 또한 변수
QString name="name1";
내가 NAME1에 테이블 "고객"의 이름을 변경해야합니다. 변수를 위의 sqlite 쿼리에 어떻게 삽입합니까?
다음과 같은 문장이 있습니다. SQLite 쿼리에 변수 삽입하기
const QString createSQL = "CREATE TABLE customer (x INTEGER PRIMARY KEY ASC, y, z);" ;
는 또한 변수
QString name="name1";
내가 NAME1에 테이블 "고객"의 이름을 변경해야합니다. 변수를 위의 sqlite 쿼리에 어떻게 삽입합니까?
테이블의 이름을 변경하려면, ALTER TABLE
사용
"ALTER TABLE customer RENAME TO " + name
를 그냥 쿼리에 테이블 이름을 삽입하기 위해 필요한 경우,
"CREATE TABLE " + name + "(x INTEGER ...
두 번째 명령문이 작동하지 않습니다. :( – DesirePRG
나는 당신이 테이블 이름을 변경할 수 있습니다 믿지 않는다 바운드 변수는 다음과 같이 할 수 있습니다.
QString name = "tableName";
QString createSQL = QString("CREATE TABLE %1 (x INTEGER PRIMARY KEY ASC, y, z)").arg(name);
H2CO3의 의견에 대답하려면
QString queryStr = QString("SELECT * FROM TABLE %1 WHERE col = :selected").arg(name);
QSqlQuery query(qSqlDatabase);
query.prepare(queryStr);
query.bindValue(":selected", "Selected Value");
이것은 문서에서 직접 가져온 것입니다.
// Execute query with positional binding using named placeholders
QVariantList contactValues;
contactValues << 1 << "Mike" << "Chepesky";
DataAccessReply reply = sc.executeAndWait(
"insert into contact (id, firstname, lastname) values (:id, :firstname, :lastname)",
contactValues);
및 documentation/source 음 @laalto
에서
봐, 사람이 할 수없는, 그래서 'SELECT * FROM?', 예를 들면? –
@laalto Ugh, 슬픈 일입니다. (문자열과 함께 별도의 "이름"유형이 있어야합니다.) –