Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#31: 2008-04-13 10:11:27 правка | ЛС | профиль | цитата


Редактировалось 5 раз(а), последний 2021-06-22 14:24:44
карма: 0

0
Разработчик
Ответов: 26067
Рейтинг: 2121
#32: 2008-05-17 03:18:36 ЛС | профиль | цитата
Tad писал(а):
результирующие файлы потяжелели на 20 кб

Ну так оно и будет, эта версия тяжелее чем 2.8, но быстрее. Ты лучше память посмотри, а не занимаемое место на диске.

------------ Дoбавленo:


Вышла новая адаптированная версия sqlite3_5_9.obj. Работает с директивой компилятора -DSQLITE_OBJ
карма: 22

0
файлы: 1sqliteapi_3_5_9.zip [183.3KB] [517]
Ответов: 211
Рейтинг: 52
#33: 2008-06-09 00:46:35 ЛС | профиль | цитата
Оператор LIKE 'иван%' в случае SQLITE_OBJ работает некорректно с русским текстом
code_9230.txt
карма: 1
слтв
0
файлы: 1code_9230.txt [4.2KB] [485]
Разработчик
Ответов: 26067
Рейтинг: 2121
#34: 2008-06-09 00:58:49 ЛС | профиль | цитата
Minkovsky, схема ведет себя одинаково, что с obj, что с dll. По крайней мере, в версии 3.4.2
карма: 22

0
Ответов: 211
Рейтинг: 52
#35: 2008-06-09 01:03:08 ЛС | профиль | цитата
Версия OBJ sqlite3_5_9 попробую откатиться на 3.4.2
карма: 1
слтв
0
Разработчик
Ответов: 26067
Рейтинг: 2121
#36: 2008-06-09 01:10:42 ЛС | профиль | цитата
Тут надо спецов по базам спросить, работает ли такая сортировка с кириллицей в разных версиях. У меня и в 3.4.2 тоже не сортирует нормально, даже из-под dll
карма: 22

0
Ответов: 211
Рейтинг: 52
#37: 2008-06-09 01:40:59 ЛС | профиль | цитата
Вот так вот ответили в в службе поддержки :

A bug: SQLite only understands upper/lower case for 7-bit Latin characters.
Hence the LIKE operator is case sensitive for 8-bit iso8859 characters or UTF-8 characters.
For example, the expression 'a' LIKE 'A' is TRUE but 'ф' LIKE 'Ф' is FALSE
карма: 1
слтв
0
Ответов: 1891
Рейтинг: 110
#38: 2008-06-09 12:15:21 ЛС | профиль | цитата
Minkovsky, писал(а):
Оператор LIKE 'иван%' в случае SQLITE_OBJ работает некорректно с русским текстом


Можно так попробовать:
code_9234.txt


карма: 0
%time%
0
файлы: 1code_9234.txt [4KB] [484]
Разработчик
Ответов: 26067
Рейтинг: 2121
#39: 2008-06-09 12:19:11 ЛС | профиль | цитата
Alexbootch, ага, а модуля-то fts3 нет в obj (да и так его нет)
карма: 22

0
Ответов: 1891
Рейтинг: 110
#40: 2008-06-09 12:22:39 ЛС | профиль | цитата
nesco, писал(а):
Alexbootch, ага, а модуля-то fts3 нет в obj (да и так его нет)


В последних библиотеках точно есть
карма: 0
%time%
0
Разработчик
Ответов: 26067
Рейтинг: 2121
#41: 2008-06-09 12:35:56 ЛС | профиль | цитата
Дома посмотрю, здесь нет объектных библиотек.
карма: 22

0
Ответов: 1891
Рейтинг: 110
#42: 2008-06-09 18:23:00 ЛС | профиль | цитата
Вот пример без fts3:
code_9243.txt
карма: 0
%time%
0
файлы: 1code_9243.txt [4.3KB] [502]
Разработчик
Ответов: 26067
Рейтинг: 2121
#43: 2008-06-09 19:00:34 ЛС | профиль | цитата
Alexbootch, ты для какой версии написАл У меня ни *.obj ни *.dll на русском ничего не выдал -- одни пустые строки. Версия у меня -- 3.4.2
карма: 22

0
Ответов: 2125
Рейтинг: 159
#44: 2008-06-09 19:44:39 ЛС | профиль | цитата
Помнится, я рассказывал, как подключить свою функцию к SQLite. Можно сделать так:


Add(SQLite_DB,2905158,238,98)
{
FileName="elements\\delphi\\elements.db"
}
Add(SQLite_Query,15010514,280,224)
{
SQL="select info from groups where upper(info) like 'ИНТ%'"
link(onQuery,6189716:doAdd,[])
link(dbHandle,13868055:Var3,[(286,149)])
}
Add(Hub,8653263,161,161)
{
OutCount=4
link(onEvent1,2905158:doOpen,[(204,167)(204,104)])
link(onEvent2,11222037:addFunction,[])
link(onEvent3,15010514:doQuery,[(212,181)(212,230)])
link(onEvent4,2905158:doClose,[(222,188)(222,111)])
}
Add(InlineCode,11222037,238,168)
{
WorkPoints=#11:addFunction|
DataPoints=#8:dbHandle|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|52:uses kol,Share,Debug,Windows,SQLite3Api,hiSQLite_DB;|0:|4:type|28: THiAsmClass = class(TDebug)|9: public|22: dbHandle:THI_Event;|52: procedure addFunction(var _Data:TData; idx:word);|5: end;|0:|14:implementation|0:|65:procedure myFunc(ctx:pointer; nArg:integer; args:ppvalue); cdecl;|13:var s:string;|5:begin|31: s:=sqlite3_value_text(args^);|33: CharUpperBuff(@s[1],Length(s));|48: sqlite3_result_text(ctx,PChar(s),Length(s),0);|4:end;|0:|34:procedure THiAsmClass.addFunction;|13:var dt:TData;|5:begin|37: dt := ReadData(_Data,dbHandle,nil);|41: if _IsObject(dt,SQLite_GUID) then begin|90: sqlite3_create_function(ToObject(dt),PChar('UPPER'),1,SQLITE_ANY,nil,@myFunc,nil,nil);|6: end;|4:end;|0:|4:end.|
link(dbHandle,13868055:Var2,[])
}
Add(GetDataEx,13868055,231,140)
{
link(Data,2905158:dbHandle,[])
}
Add(Button,9962326,112,161)
{
Left=25
Top=35
link(onClick,8653263:doEvent1,[])
}
Add(ListBox,6189716,343,224)
{
Left=115
Top=15
Width=130
Height=95
}

Ввиду того, что путь к базе относительный, запускать в каталоге ...\HiAsm
карма: 1

1
Голосовали:Konst
Ответов: 16884
Рейтинг: 1239
#45: 2008-06-09 19:51:18 ЛС | профиль | цитата
nesco, у меня твоя "адаптированную версию sqlite3_4_2.obj" - все нормально работает в code_9243.txt:
находит там иван% х 2, а там pet% x 2 и в режиме dll и с obj
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)