1. 程式人生 > >Qt中sqllite資料庫判斷一張表是否存在

Qt中sqllite資料庫判斷一張表是否存在

今天在學習Qt的時候,打算使用Qt中的sqllist做一個小的Daemo,但是第一次在使用資料庫的時候需要在程式碼中建立表,於是需要先判斷表是否存在,於是去網上搜了一下,發現網上的案例都是下面這樣:

bool IsTableExist(QSqlQuery &query,QString table)
{
   QString sql = QString("select count(*) from sqlite_master where type = 'table' name='%1'").arg(table);
   return query.exec(sql);
}

這種方法查詢的是資料庫中有沒有表的資料,肯定會有結果返回,所以query.exec(sql)

執行的結果一定是true,只是查詢的結果如果沒有這張表的話是0,有的話是1。必須把查詢的結果拿出來和0做比較,但是網上的方法都沒有這樣做。

下面是我自己想出來的方法,其實差不多,但是不用取出查詢的結果。

bool IsTableExist(QSqlQuery &query,QString table)
{
   QString sql = QString("select * from sqlite_master where name='%1'").arg(table);
   query.exec(sql);
   return query.next();
}

相關推薦

Qtsqllite資料庫判斷是否存在

今天在學習Qt的時候,打算使用Qt中的sqllist做一個小的Daemo,但是第一次在使用資料庫的時候需要在程式碼中建立表,於是需要先判斷表是否存在,於是去網上搜了一下,發現網上的案例都是下面這樣: bool IsTableExist(QSqlQuery &a

mysql 資料庫刪除的重複資料

1.備份操作表資料TBL_BASE_YTX_GROUP2.複製操作表  TBL_BASE_YTX_GROUP   tbl_base_ytx_group_copy13.刪除複製表中的資料delete from tbl_base_ytx_group_copy14.去重操作表中資料

JDBC 如何判斷是否存在

      今天用到資料庫庫的知識,想用java程式碼的動態建立一張表結構。在建立表結構之前呢,我們首先要確定這張表在資料庫中 是不存在的。因為大家都知道同一個資料庫中的表名是不能重複的。       1 。用比較笨的方法,也是比較簡單的方法。利用錯誤來判斷表是否存在。 程

Storm讀取Mysql資料庫寫入Mysql資料庫

1、spout: package com.TestStorm; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import j

mysql將一個資料插入另,排重,刪除,匯入

將一個表中資料插入另一張表的語句: insert into 目標表(欄位1,欄位2,欄位3……) select  欄位1,欄位2,欄位3… from 來源表 where 條件1 and 條件2; 排重很簡單,只要在需要排重的欄位前加distinct就可以嘞!eg~ 查詢記錄

ORACLE觸發器實現刪除資料同時刪除另相關資料

這是我的第一篇部落格。 有兩張表:BOOK、PGEVIEW,分別有一個名為BOOKID的欄位 想實現的功能:刪除BOOK表中的一行資料時刪除與PAGEVIEW表中BOOKID相等的資料行 實現方法:在BOOK表中建立一個觸發器BOOK_TRG_DELETE,具體實現語句如下

mysql 查詢表不包含另的資料的記錄

tabletouser表 submit 表 查詢submit表中的記錄,只需要年份(time)和表名(tab_id) ,但是如果在tabletouser表中存在相同的年份(year)和表(tabletouser)則不能從submit中提取出 開始想從 submit表中得

Android學習筆記八:SQLite判斷是否存在

CREATE TABLE sqlite_master ( type TEXT, name TEXT, tbl_name TEXT, rootpage INTEGER, sql TEXT ); 對於表來說,type 欄位永遠是 ‘table’,name 欄位永遠是表的名字。所以,要獲得資料庫中所有表的列表,

Postgresql 資料在存在,另不滿足完整性的查詢

有兩張表T1,T2,表結構和資料如下:create table t1 ( id int ); create table t2 ( id int, finished int ); insert into t1 values (1); insert into t

mysql資料庫的簡單增刪改查,合併欄位,拼接字元操作,用java完成將的查詢結果合併存入另的指定欄位

首先問題描述:我現在有兩個表,一個表是關鍵詞,一個表是含有關鍵詞的標籤,需要做的就是在關鍵詞表中新建一個標籤欄位,把包含該關鍵詞的全部標籤存入其中。比如關鍵詞是Java,標籤可能有Java開發,Java後臺等。我這裡關鍵詞有4000個,標籤有40000個,我用了小段java程式碼+sql的函式就完成

簡單三層使用DataTable向資料庫批量匯入資料---向SqlServer匯入資料

向資料庫的一張表中新增資料,可以採用單個新增,即一條資料、一條資料的新增;也可以採用批量匯入,依次將好些條資料寫入資料庫的一張表中。文字藉助例項《新增系列資訊》講解一種向資料庫批量匯入資料的方法。 1.介面設計 觀看一下新增系列資訊部分的介面設計: 本

資料庫可以有多少個主鍵?

今天在工作,做老專案維護的時候無意中發現一張表居然有三個主鍵。嚇死寶寶了,然後嘗試著建表建主鍵,但是都不能成功。 難道是我寫的有問題,最後通過查資料總終於解決了。 1、資料庫的每張表只能有一個主鍵,不可能有多個主鍵。 2、所謂的一張表多個主鍵,我們稱之為聯合主鍵。  

Oracle資料庫,知道,查詢與其有主外來鍵關係的

--查外來鍵表NC56.CSCI有無對應的主鍵表 SELECT a.owner, A.TABLE_NAME pr

資料庫_基礎知識_SQL遍歷的每條記錄並對每條記錄執行相應操作的種方法

sql中遍歷一張表的每條記錄的一種方法: 前提條件:表中存在一個遞增的欄位 如 create table Linkman   {   ID int incremental,   Name nvarchar(50),   .....   }   這樣遍歷這張

oracle資料庫備份和恢復 怎樣將Oracle的多個欄位更新到另

對於比較簡單的表,資料量不是特別多的表,可以使用簡單的sql語句來進行備份create table T_FA_Cat_20121207 as select * from T_FA_Cat 建立一個新表,把資料儲存起來 insert into  T_FA_Cat  sele

轉換一個字段含有多個另外的id | | 行轉列

ret .net sub 模式 end posit tex 匹配 replace 1、Oracle Function --入參:表 id /* cxcyxm02 :操作表,含有一個存儲另一張表(xs0101)多個主鍵id的字段  ids :操作表的主鍵 i

Excel 2010 Vlookup函數用法(合並多個組員反饋回來的表格 到 )

index font 用戶 組合鍵 -s line 標定 AC 雙擊 VLOOKUP函數用法說明: 案例 情景:組長有一張表格,發給多個組員填寫,每個組員填寫完之後反饋回來,然後組長將多個組員反饋回來的表格合並到一張表格,如何快速實現? 總表.xlsx:是

mysql 從相同類型的多提取到

tab cursor 同時 sql and ble 有時 eat sch 蝸牛背著沈重的殼,貼著地面一步步艱難地向前爬行,不回頭,也不左顧右盼,只是朝著自己想到達的地方行進。 有時候需要從多張相同類型的表中提取數據,這些表有一些相同的列或者表結構完全相同,同時表名存在一定的

postgresql 從查詢出記錄然後批量插入到另

 有個業務從 appuser 表中 把uid 查出來所有uid 資料,然後批量插入 app_user_sdk 表中 insert into app_user_sdk ((select uid,'MY' from appuser);  又要重複插入,又把新新增的使用者,

Hive資料合併成一行,並插入另

知識點:時間戳轉化,當前時間,左連線,查詢的欄位相同可以直接插入另一張表  insert into lqioc_ioc_dw.kkjc select a.*,b.CLL,e.JZT from (select FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy