顯示具有 SQLite 標籤的文章。 顯示所有文章
顯示具有 SQLite 標籤的文章。 顯示所有文章

2018-01-11

SQLite 查詢忽略字母大小寫 COLLATE NOCASE

在MS SQL Server上,預設查詢時會自動忽略了英文大小寫差異,
但SQLite預設將大小寫視為不同結果,
但可以利用在來欄位名稱後加上COLLATE NOCASE以便忽略大小寫差異...

select *
from TableName
where AccNo='Dean' COLLATE NOCASE

參考自
sqlite查询忽略大小写,你踩坑了吗?

2018-01-10

SQLite 多資料庫查詢

一個sqlite檔案唯一個database,如果需要讀取多個資料庫,
可以使用ATTACH DATABASE的指令,掛載其他資料庫...

--附加資料庫
ATTACH DATABASE 'C:/123.db' As 'Tmp_db';

--表格寫入附加資料庫
insert into Tmp_db.Company
select *  
from Company

--查詢附加資料庫表格
select *  
from Tmp_db.Company

--解除附加資料庫
DETACH DATABASE 'Tmp_db';

參考自
SQLite 附加数据库
[Sqlite3] 多個Sqlite資料庫結合使用

2012-09-19

SQLite 時間處理問題

在Delphi中透過ADO元件使用SQLite資料庫時,
抓取時間的資料格式如下
select datetime(CURRENT_TIMESTAMP,'localtime')
-------------------
2012-09-19 23:29:45
若將抓取的時間資料透過ADOQuery寫入,
會出現 is not a valid date and time 的錯誤訊息,
這是因為在台灣的時間格式 年、月、日 以"/"區隔而非"-",
故會產生時間格式錯誤的訊息,
使用下列語法指定輸出的時間格式,即可避免此問題
select strftime('%Y/%m/%d %H:%M:%f',datetime(CURRENT_TIMESTAMP,'localtime'))
-------------------
2012/09/19 23:29:45

時間格式:
%d - 月份內的日期
%f - 秒數 (準確至千份一秒)
%H - 小時
%j - 年份內的第幾日 (沒有潤年最大 365, 潤年最大 366)
%m - 月份
%M - 分鐘
%s - Unix Time Stamp
%w - 星期 (0 是星期日,6 是星期六)
%W - 年份內的第幾個星期
%Y - 年份
%% - 顯示 % 時使用

參考自
Programming Design Notes-SQLite 日期和時間的操作

2012-02-17

MS SQL與SQLite語法使用差異

1.Top N
MS SQL  select Top 5 * from Table
SQLite  select * from Table limit 0,5

2.GETDATE()
MS SQL  select GETDATE()
SQLite  select datetime(CURRENT_TIMESTAMP,'localtime')

3.SELECT INTO
MS SQL select * into Table2 from Table
SQLite CREATE TABLE table2 AS  select * from Table


SQLite 相關網站備忘

1.SQLite官網 SQLite
2.ODBC驅動 SQLite ODBC Driver
3.語法文件 SQL As Understood By SQLite
4.DB免費管理工具 SQLiteStudio

2012-02-16

Delphi 7連線SQLite資料庫

最近在研究於Delphi7中利用ODBC連線SQLite DB檔案,
將實做成功方法做個記錄。

先安裝SQLite ODBC Driver
//**在ADO內的ConnectionString直接帶入,不用連線精靈
procedure _SetSQLiteDBConnection;
var OD : TOpenDialog;
    ADOConn : TADOConnection;
    xDatabase : String;
begin
  OD := TOpenDialog.Create(NIL);

  OD.FileName := 'x:\mymoney';//**預設資料庫路徑
  OD.DefaultExt := '*.db';//**預設存檔格式
  OD.Filter := 'DB files (*.db)|*.DB';//**過濾顯示的檔案格式
  if Not OD.Execute then
  begin
    showmessage('選擇資料庫檔案失敗!');
    Abort;
  end;

  xDatabase := ';Database='+OD.FileName;
  ADOConn := TADOConnection.Create(NIL);
  ADOConn.LoginPrompt := False;
  ADOConn.ConnectionString := 'Driver={SQLite3 ODBC Driver}'+xDatabase;

  while Not ADOConn.Connected do
    ADOConn.Open;
end;


參考自 网语飘飘.Net/Delphi攻坚战