Вверх ↑
Этот топик читают: Гость
Ответов: 927
Рейтинг: 3
#1561: 2018-10-25 18:51:24 ЛС | профиль | цитата
Первое, и основное - некоторые команды на старой версии видимо не работают. В случае необходимости - сложно будет что-то добавить\изменить.
Сейчас пробую конвертнуть свою БД в UTF8 пока без особых успехов.
карма: 0

0
Главный модератор
Ответов: 2702
Рейтинг: 355
#1562: 2018-10-25 19:09:53 ЛС | профиль | цитата
user_asm писал(а):
Сейчас пробую конвертнуть свою БД в UTF8 пока без особых успехов.

Из командной строки сделать дамп (*.sql) БД в файл, затем конвертнуть текстовым редактором в нужную кодировку и последнее создать новую БД (*.db) из дампа.
карма: 8
Дорогу осилит идущий. HiAsm.NET is based on HiAsm 5
0
Ответов: 927
Рейтинг: 3
#1563: 2018-10-25 19:10:12 ЛС | профиль | цитата
Как один из выходов - экспортировать таблицы в CSV, АкелПадом конвертнуть полученные CSV, импортировать данные назад с очисткой перед импортом.
Тогда останется 1 вопрос - как правильно вносить\читать в\из БД.
Был бы благодарен за пример таких участков кода.
карма: 0

0
Ответов: 16489
Рейтинг: 1210
#1564: 2018-10-25 19:50:22 ЛС | профиль | цитата
user_asm писал(а):
Первое, и основное - некоторые команды на старой версии видимо не работают.
Какие, если не секрет.
user_asm писал(а):
Как один из выходов - экспортировать таблицы в CSV
Тебе Nic дал самый простой и правильный совет.
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 927
Рейтинг: 3
#1565: 2018-10-25 19:56:18 ЛС | профиль | цитата
Tad писал(а):
Какие, если не секрет.

В личке писал тебе день назад примерно. На новой версии твой пример работает, на старой - нет. Я про это - http://forum.hiasm.com/post/295570

Tad писал(а):
Тебе Nic дал самый простой и правильный совет.

Писал не видя его ответа, по сути это тоже самое. Дамп сделал, пока разбираюсь как из него восстановить БД.
карма: 0

0
Ответов: 16489
Рейтинг: 1210
#1566: 2018-10-25 20:00:18 ЛС | профиль | цитата
sqlite3.exe baseUTF_8.db <oldBase.sql

--- Добавлено в 2018-10-25 20:07:16

Можно ли подправить схему которую ты предлагал здесь - http://forum.hiasm.com/post/295570

И какое отношение http://forum.hiasm.com/post/295570 имеет к SQLite ?

Редактировалось 1 раз(а), последний 2018-10-25 20:07:16
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 927
Рейтинг: 3
#1567: 2018-10-25 20:08:36 ЛС | профиль | цитата
Я вот так сделал sqlite3.exe -init dumputf8.sql 02.db ну ладно, результат один и тот же.
Теперь открывая БД примером получаю вот такое:
BD_UTF.jpg

Ну и естественно что в моей программе теперь всё в кракозябрах, выпадающие списки, таблицы строк и т.д.
Ага, раздуплил, каждые результаты запроса обрабатывать чарсетом или ставить мод Netspirit


П.С. Мдя.... гиморно везде чарсеты ставить...
Эмс, а вот тут куда лучше чарсет поставить? Перед каждым Эдитом?
Add(MT_MultiData,8015614,405,278)
{
Count=21
link(onData2,9593101:doText2,[(474,291)(474,83)])
link(onData3,6850960:doText2,[(474,298)(474,139)])
link(onData4,1034535:doText2,[(499,305)(499,195)])
link(onData5,9607550:doText2,[(515,312)(515,228)])
link(onData6,726978:doText2,[(503,319)(503,279)])
}
Add(GlobalVar,3392645,335,236)
{
Name="dbHandle"
}
Add(SQLite_Query,4925121,335,278)
{
link(onQuery,8015614:doSeparateMT,[])
link(dbHandle,3392645:Var,[])
}
Add(Edit,9607550,594,215)
{
Left=90
Top=50
Width=680
TabOrder=1
Text=""
}
Add(Edit,726978,570,266)
{
Left=90
Top=73
Width=145
Text=""
}
Add(Edit,1034535,560,182)
{
Left=90
Top=27
Width=680
Text=""
}
Add(Edit,9593101,511,70)
{
Left=90
Top=3
Width=85
Text=""
}
Add(Edit,6850960,511,126)
{
Left=280
Top=5
Width=110
Text=""
}


Редактировалось 4 раз(а), последний 2018-10-25 20:40:31
карма: 0

0
Ответов: 16489
Рейтинг: 1210
#1568: 2018-10-25 21:15:50 ЛС | профиль | цитата

Add(GlobalVar,3392645,140,294)
{
Name="dbHandle"
}
Add(SQLite_Query,4925121,140,336)
{
link(onQuery,11426372:doStr,[(187,342)(187,349)])
link(dbHandle,3392645:Var,[])
}
Add(Edit,9607550,406,371)
{
Left=90
Top=50
Width=680
TabOrder=1
Text=""
}
Add(Edit,726978,336,371)
{
Left=90
Top=73
Width=145
Text=""
}
Add(Edit,1034535,448,350)
{
Left=90
Top=27
Width=680
Text=""
}
Add(Edit,9593101,525,308)
{
Left=90
Top=3
Width=85
Text=""
}
Add(Edit,6850960,490,329)
{
Left=280
Top=5
Width=110
Text=""
}
Add(MT_String,11426372,196,343)
{
link(onResult,5867988:doCharset,[])
}
Add(MultiStrData,11744102,294,343)
{
Count=5
link(onPart1,9593101:doText2,[(387,349)(387,321)])
link(onPart2,6850960:doText2,[(408,356)(408,342)])
link(onPart3,1034535:doText2,[])
link(onPart4,9607550:doText2,[(387,370)(387,384)])
link(onPart5,726978:doText2,[(332,377)(332,384)])
}
Add(Charset,5867988,245,343)
{
link(onCharset,11744102:doSplit,[])
}

карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 927
Рейтинг: 3
#1569: 2018-10-25 22:49:40 ЛС | профиль | цитата
Спасибо, работает, применил.
Вопрос - а почему бы стандартный элемент запроса к БД не снабдить свойством чарсета? Ведь проблема с русязом известная, и сейчас мне бы было намного проще перебить схему.
Листая эту тему вроде видел такое предложение от Tad, но не помню чем закончилась дискуссия с nesco.
Мод ставить как-то боязно. Вдруг что не так пойдет, все же важные файлы затрагивает. Или штука проверенная и можно не беспокоиться?
Кстати СВН что-то у меня не коннектится. Так и должно быть?

П.С. Не, что-то у меня не работает мод. Не дает скомпилировать, дохнет с ошибкой HiAsm\Elements\delphi\code\hiSQLite_Query.pas(102) Error: Undeclared identifier: 'ReadObject'

Редактировалось 2 раз(а), последний 2018-10-25 23:03:53
карма: 0

0
Ответов: 3943
Рейтинг: 622
#1570: 2018-10-26 10:54:17 ЛС | профиль | цитата
user_asm писал(а):
Вопрос - а почему бы стандартный элемент запроса к БД не снабдить свойством чарсета?
А ты юморист, однако. А мой мод - это не стандартные компоненты с добавленным свойством Charset?
user_asm писал(а):
Не дает скомпилировать, дохнет с ошибкой
Нужно обновить пакет с SVN. Требуемый функционал был введен 16.05.2014. Если лень обновлять весь пакет - хотя бы файл Share.pas обнови.

Редактировалось 1 раз(а), последний 2018-10-26 10:54:50
карма: 19

0
Ответов: 927
Рейтинг: 3
#1571: 2018-10-26 13:05:02 ЛС | профиль | цитата
Не коннестит с свн. Использовал HiSVN 2.2.0.3, менял адреса. Какой работающий адрес?
карма: 0

0
Ответов: 3943
Рейтинг: 622
#1572: 2018-10-26 13:07:50 ЛС | профиль | цитата
http://svn.hiasm.com/packs/delphi
карма: 19

0
Ответов: 16489
Рейтинг: 1210
#1573: 2018-10-26 18:25:05 ЛС | профиль | цитата
user_asm, извини, ещё раз ответь
user_asm писал(а):
В личке писал тебе день назад примерно. На новой версии твой пример работает, на старой - нет. Я про это - http://forum.hiasm.com/post/295570
Tad писал(а):
И какое отношение http://forum.hiasm.com/post/295570 имеет к SQLite ?


Редактировалось 1 раз(а), последний 2018-10-26 18:26:44
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 927
Рейтинг: 3
#1574: 2018-10-27 10:32:58 ЛС | профиль | цитата
Копи\паст походу не сработал, другая ссылка. Вот правильная http://forum.hiasm.com/post/294810
карма: 0

0
Ответов: 16489
Рейтинг: 1210
#1575: 2018-10-27 15:46:31 ЛС | профиль | цитата
Ну нет в "старой" sqlite3.dll цикла.
Из-за этого переделывать программу и БД ?
Используй компонент For.

Add(MainForm,2953706,231,140)
{
Width=438
Height=115
Caption="Пример SQLite. Добавление дней."
BorderStyle=1
Position=1
Point(onClose)
link(onCreate,11559345:doOpen,[])
link(onClose,11559345:doClose,[])
}
Add(SQLite_DB,11559345,343,154)
{
FileName=":memory:"
link(onOpen,15879926:doExec,[])
}
Add(DatePicker,9089186,273,182)
{
Left=5
Top=30
Width=140
Height=21
Point(DateInt)
}
Add(DatePicker,7057358,413,357)
{
Left=275
Top=30
Width=145
Height=21
}
Add(Edit,3626187,154,182)
{
Left=155
Top=30
Width=40
Text="20"
Alignment=2
}
Add(SQLite_Query,1127893,357,357)
{
link(onQuery,7057358:doSetDate,[])
link(dbHandle,5834138:Var3,[(363,208)])
}
Add(FormatStr,13025280,273,287)
{
Mask="INSERT INTO tmp SELECT strftime("%w",julianday(%1 + 1721424.5 + %2)), julianday(%1 + 1721424.5 + %2);\r\n"
link(onFString,4481150:doWork3,[(312,293)])
link(Str1,9089186:DateInt,[])
}
Add(Button,16145868,49,280)
{
Left=205
Top=30
link(onClick,10410574:doEvent1,[])
}
Add(Math,799357,154,287)
{
OpType=2
Op2=2
ResultType=0
link(onResult,12118137:doFor,[])
link(Op1,7591406:Var2,[])
}
Add(For,12118137,203,287)
{
link(onEvent,13025280:doString,[])
link(onStop,10194925:doString,[(243,300)(243,363)])
link(End,799357:Result,[(216,275)(188,275)(188,331)(160,331)])
}
Add(SQLite_Exec,15879926,406,154)
{
SQL="CREATE TEMP table IF NOT EXISTS tmp(i Integer, data Real);"
}
Add(Hub,10410574,91,280)
{
link(onEvent1,15412997:doString,[(109,286)(109,230)])
link(onEvent2,799357:doOperation,[])
}
Add(SQLite_Exec,8313210,322,224)
{
link(dbHandle,5834138:Var1,[(328,208)])
}
Add(GetDataEx,5834138,343,203)
{
link(Data,11559345:dbHandle,[])
}
Add(FormatStr,10194925,252,357)
{
Mask="end;\r\nDELETE FROM tmp WHERE i=0 OR i=6;\r\nSELECT data-1721424.5 FROM tmp LIMIT 1 OFFSET %2;"
link(onFString,1127893:doQuery,[])
link(Str2,7591406:Var3,[(265,271)])
}
Add(FormatStr,15412997,210,224)
{
Mask="DELETE from tmp WHERE 1;\r\nbegin;"
link(onFString,4481150:doWork2,[])
}
Add(HubEx,4481150,308,224)
{
link(onEvent,8313210:doExec,[])
}
Add(GetDataEx,7591406,154,266)
{
link(Data,3626187:Text,[])
}


Редактировалось 1 раз(а), последний 2018-10-27 15:50:04
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)