中文偽春菜後援會論壇  

打印

[分享] 簡易資料庫SAORI - sqlori

Unicode build希望。
db名經SAORI API設定希望。


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

引用:
(1) OPEN
argument[0]: OPEN
argument[1]: [%(filepath)]

開啟資料庫的連線。若不指定filepath時,預設資料庫檔名為sqlori.db。
src中是"sqlori._db"啊?

不理了,我通通改了。
1.1.10+版更動:
複製內容到剪貼板
代碼:
+ 補回SQLite 3.6.16的源碼,SQLite是Public Domain的關係一起包進來也沒關係。
! 修正:不指定filepath時,預設資料庫檔名為sqlori.db
! 修正沒有設定 SAORI return status的問題
! 有關 CSAORI 執行實體自csaori.cpp/caori.h中抽出成csaori_interface.cpp,使 CSAORI 可以獨立更新
! 更新 CSAORI 至 svn rev 88
下載:
源碼+SAORI本體程式: sqlori v1.1.10+.7z (1.04 MB)
test suite(SAORI本體+yaya+tama程式): sqloritest.7z (562.65 KB)

P.S.:對了,要推到 CSAORI svn中嗎? XD


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

引用:
原帖由 時原砂 於 2009-7-23 19:01 發表
Orz...

要不要推進CSAORI svn這個我倒無所謂
如果Royさん覺得有價值的話就加吧w

至於sqlite源碼是因為太重了所以才刪掉的XD
svn rev 92 投入確定。w

P.S.: #1的文成了 readme.txt 的內容,r93英譯完成。


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

引用:
原帖由 時原砂 於 2009-7-24 12:00 發表
不過Royさん的dll是怎麼壓縮的啊?
我的VS release版都在400K以上

Compiler設置這邊我還是新手...(滾滾)
複製內容到剪貼板
代碼:
UPX --best --lzama sqlori.dll


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

引用:
原帖由 時原砂 於 2009-7-24 13:41 發表
原來是加殼啊...(汗)

話說我要更新Sqlori的話要怎麼做呢?
現階段的Sqlori在OO上還不夠獨立
還有改進的空間...
(一開始寫得太隨便了...)

另外我也搞不懂為啥CSAORI要強制設定locale為Japaness
整個CSAORI專案似乎也 ...
現時是這樣:

先把csaori checkout到本機
http://code.google.com/p/csaori/source/checkout

在本機改好後把sqlori目錄打包上傳上來吧。
但是Debug/Release目錄中就得把*.obj/*.lib/*.exp/*.pch/*.pdb等刪除,剩下sqlori.dll
然後我再推到svn中。
之後就可以svn update了。

聯絡ぽなさん或ukiyaさん加你帳號後你就可以直接svn commit了。


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

複製內容到剪貼板
代碼:
OnRead
{
        _res = '';
        SQLori('OPEN', 'sqliori.db');
        SQLori('EXEC', "SELECT 本子名,性質,優先級,死線,官方網站,天窗ID,備注 FROM iCalendar;");
        SQLori('CLOSE');
        _txt += "\b[2]\_q\f[bold,true]行事歷 - 列表\f[default]\n\n[150]"
        for _i = 0; _i < SQLori_row; _i++ {
                                _txt += "\f[bold,true]稿件名:"+SQLori.value(_i, 0)+"\f[default] (性質:"+SQLori.value(_i, 1)+" 優先級:"+SQLori.value(_i, 2)+"\n/
                                死線:"+SQLori.value(_i, 3)+"\n/
                                備注:"+SQLori.value(_i, 6)+"\n";
        }
        _txt+= '\_q';

        _txt;
}


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

引用:
原帖由 貓魚 於 2009-7-26 16:48 發表
唔,看來是我理解還不夠XD
STARRING是……我是想修改欄位名稱(備註寫了錯字XD|||),
查SQLite手冊得到:

我照著寫,但沒有效果……
難道不是這個命令?@@ ...
這個是改內容。
要改table結構請用ALTER TABLE。
http://www.sqlite.org/lang_altertable.html


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

引用:
原帖由 貓魚 於 2009-8-9 13:29 發表
我現在遇到了真正的問題(原來編碼問題只是幌子XD)

即我突然發現sqlori的db在我的小筆記本上無法被正確讀取。
TAMA返回:


但在臺式機上,TAMA返回:

可以看到最終人格只說出了“0\n0\n0\n0\n0\n\n0\n = \n0\n”,且有一個錯 ...
舊版。

最新版在Google Code發布中。
http://code.google.com/p/csaori/ ... qlori_1.1.10%2B.zip


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

引用:
原帖由 貓魚 於 2009-8-10 01:00 發表
裝了新版依然測試不通過@w@;;

這次則是直接在臺式機上返回:


筆記本上還未測試,估計是一樣的錯誤@@

我我我覺得SQLori腳本不必想太多,
不管東西好不好,生出來再說……XD(毆) ...
忘了改位置?

#define SQLORI_PATH 'saori\sqlori.dll'


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

引用:
原帖由 貓魚 於 2009-8-10 11:14 發表
呃,雖然我的確是忘了改位置,但修正之後還是無法顯示出來。
TAMA顯示所有寫入行為都正常(利用SQLiteSpy也檢查過了,的確有正確寫入~),但人格的確說不出來:


而人格只會返回:


看來是輸出的時候有不正確的地方,但究竟是哪裡錯 ...
select沒返回的話就有問題了。
複製內容到剪貼板
代碼:
// request to library
// name : C:\Documents and Settings\Roy\Desktop\sqloritest\sqlori.dll
EXECUTE SAORI/1.0
Charset: UTF-8
Sender: AYA
SecurityLevel: Local
Argument0: EXEC
Argument1: SELECT * FROM data;


// response (Execution time : 0[ms])
SAORI/1.0 200 OK
Charset: UTF-8
Result: 0ID姓名年齡1張三232李四183王五254許功蓋90


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

SQLori換這個看看吧,CHR(1)被轉成","了。
複製內容到剪貼板
代碼:
SQLori
{
    SQLori_result = SQLITE_OK;
    SQLori_fields = IARRAY;
    SQLori_values = IARRAY;
    SQLori_col = 0;
    SQLori_row = 0;

    _ret =  FUNCTIONEX(SQLORI_PATH, _argv[0], _argv[1]);

    _data = SPLIT(_ret, ',');
    SQLori_result = TOINT(_data[0]);
   
    if SQLori_result != SQLITE_OK {
        SQLori_fields[0] = 'Error';
        SQLori_values[0] = _data[1];
        SQLori_col = 1;
        SQLori_row = 1;
    }
    else {
        if (ARRAYSIZE(_data) >= 3) {
            SQLori_fields = SPLIT(_data[1], CHR(0x2));
            SQLori_values = SPLIT(_data[2], CHR(0x2));
            SQLori_col = ARRAYSIZE(SQLori_fields);
            if SQLori_col != 0
                SQLori_row = ARRAYSIZE(SQLori_values) / SQLori_col;
        }
    }
}


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

引用:
原帖由 貓魚 於 2009-8-10 16:23 發表
出來了啊啊啊啊啊啊~~~~~
感謝!!
下一版sqlori的回傳格式會改為「回傳嗎(0x2)[欄位名稱[(0x3)欄位名稱...]](0x2)[數值[(0x3)數值...]]」以避免 (0x1) 轉碼問題,所以以上方法不久後就失效了。


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP



正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP

port了一份用SQLite 2.8.17的sqlori-sqlite2.dll作為debeso.dll的drop-in replacement XD
但是 -r 還是沒有啦 XD

EDIT:有下載了 XD
http://code.google.com/p/csaori/ ... -sqlite2_1.2.13.zip


正在聽着:
水人的格言:
有仇不報非君子!
有水不灌非魔人!

萬事皆可萌,唯有情無價

TOP



當前時區 GMT+8, 現在時間是 2018-12-15 14:17

Processed in 0.022684 second(s), 10 queries, Gzip enabled.

清除 Cookies - 聯繫我們 - 中文偽春菜後援會 - Archiver - WAP - TOP - 界面風格