Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1238
#1171: 2013-10-19 22:27:58 ЛС | профиль | цитата
nesco, я тоже врубился не сразу.
А что сказать про начинающего ?
карма: 24
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 655
Рейтинг: 18
#1172: 2013-10-25 01:53:31 ЛС | профиль | цитата
При выполнении запроса SELECT * From table1; получить событие о том что команда завершена.

Количество записей в таблице может быть каким угодно и по завершению выполнения запроса хочется об этом получать событие, очень точки onEnd не хватает в компоненте SQLite_Query.
Сейчас делаю так: сначало SELECT COUNT(*) FROM table1...затем сравниваю количество полученных данных с количеством строк в таблице через IF_Else..., но может кто-нить добавит onEnd в SQLite_Query? , многим будет полезна данная точка, через нее удобнее.
карма: 0

0
Разработчик
Ответов: 26048
Рейтинг: 2110
#1173: 2013-10-25 02:13:57 ЛС | профиль | цитата
Gunnman писал(а):
но может кто-нить добавит onEnd в SQLite_Query

А чем Hub на входе не устраивает
карма: 22

0
Ответов: 655
Рейтинг: 18
#1174: 2013-10-25 14:34:33 ЛС | профиль | цитата
nesco,

Ну вот пример:
Нужно сделать select * from user;
Затем когда все данные получены из БД сформировать из них html страницу с таблицами.

В моем примере все работает. Однако ищу оптимальный вариант как "вылавливать" событие что команда отправленная в sqlite выполнена,
Можешь посмотреть схему?
code_32146.txt

Собственно тестовая база :
http://forum.hiasm.com/forum_serv.php?q=56&id=3618






карма: 0

0
файлы: 1code_32146.txt [2.9KB] [355]
Ответов: 16884
Рейтинг: 1238
#1175: 2013-10-25 21:27:27 ЛС | профиль | цитата
code_32147.txt
Можно ещё упростить - сразу получить нужную строку для HTML.

Add(SQLite_Query,6616688,392,259)
{
SQL="SELECT "<tr><th>"||id||"</th><th>"||name||"</th><th>"||phone||"</th> </tr>" FROM user ;"
}
и подать её прямо на StrList.doAdd. Т.е. схема будет выглядеть так:
db2html.gif

------------ Дoбавленo в 21.27:
Хотя и так будет прекрасно работать.

Add(MainForm,12152022,259,196)
{
Width=1331
Height=552
link(onCreate,6944657:doOpen,[])
}
Add(FormatStr,8553151,455,336)
{
Mask="HTTP/1.1 200 OK\r\nContent-Length: %1\r\nContent-Type: text/html\r\nConnection: close\r\n\r\n%2\r\n"
link(onFString,2515440:doAdd,[])
link(Str2,16205428:Var3,[(468,310)])
}
Add(SQLite_DB,6944657,343,210)
{
FileName="..\ELEMENTS\delphi\ELEMENTS.DB"
}
Add(Length,6323585,406,336)
{
link(onLength,8553151:doString,[])
link(Str,16205428:Var2,[])
}
Add(Button,2675595,259,266)
{
Left=185
Top=480
link(onClick,13145285:doEvent1,[])
}
Add(Hub,13145285,308,266)
{
OutCount=3
link(onEvent1,6616688:doQuery,[])
link(onEvent2,6323585:doLength,[(334,279)(334,342)])
link(onEvent3,1481204:doClear,[(385,286)(385,279)])
}
Add(SQLite_Query,6616688,343,266)
{
SQL="SELECT '<table border="1"> <colgroup span="1" style="color:red"></colgroup><colgroup span="2">';\r\nSELECT "<tr><th>"||id||"</th><th>"||name||"</th><th>"||info||"</th> </tr>" FROM elements;\r\nSELECT "</table>";"
link(onQuery,1481204:doStrCatDlm,[])
link(dbHandle,6944657:dbHandle,[])
}
Add(Memo,2515440,518,336)
{
Left=30
Top=15
Width=525
Height=435
ScrollBars=2
}
Add(GetDataEx,16205428,406,305)
{
link(Data,1481204:Result,[])
}
Add(StrCatDelim,1481204,406,266)
{
Delimiter="\r\n"
Point(doClear)
link(Str1,16205428:Var1,[(412,254)(394,254)(394,310)])
}
карма: 24
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 2code_32147.txt [2KB] [259], db2html.gif [9.5KB] [476]
Гость
Ответов: 17029
Рейтинг: 0
#1176: 2013-10-26 00:02:56 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2021-05-21 12:28:51
карма: 0

0
Ответов: 16884
Рейтинг: 1238
#1177: 2013-10-26 00:24:08 ЛС | профиль | цитата
77.106.248.15 писал(а):
Или ил-за того что выполнение методов в hub идет последовательно формирование строк в компоненте FormatStr происходит уже после того как выполнился запрос в БД?
да.
карма: 24
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Гость
Ответов: 17029
Рейтинг: 0
#1178: 2013-10-26 00:26:22 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2021-05-21 12:28:51
карма: 0

0
Ответов: 257
Рейтинг: -2
#1179: 2013-10-28 03:20:55 ЛС | профиль | цитата
подскажите пример как содержимое MTstr переписать в базу ( к пример в таблице 4 столбца ) ? Поиском так и не нашел
------------ Дoбавленo в 03.20:
все, нашел, не нужно
карма: 0

0
Ответов: 655
Рейтинг: 18
#1180: 2013-11-07 21:33:01 ЛС | профиль | цитата
Почему при использовании StreamToSTr в БД не записывается картинка?
А при использовании StreamToHex записывается?

(create table data (id int, pics blob); сделал

Допустим пишу картинку 4кб в пустую базу (использую StreamToHex) после выполнения команды БД весит 9кб (ну оно и понятно HEX..)
Далее использую эту же 4кб картинку и пишу в пустую БД (использую StreamToStr) после выполнения команды вес БД не меняется.
Чего упустил? Подскажите плз.
п.с. тему читал!

Пример схемы:

code_32272.txt
карма: 0

0
файлы: 1code_32272.txt [1.2KB] [305]
Ответов: 16884
Рейтинг: 1238
#1181: 2013-11-07 22:35:55 ЛС | профиль | цитата
Gunnman, почитай про защиту при записи данных в БД SQLite при аварии (пропала эл.энергия, сдох комп).
Всё что ты пишешь в БД - пишется во временный файл. Размер временного файла зависит от настройки и по умолчанию у нас равен 8192 байта.
И только после заполнения, переписывается в основной файл БД.
Имя этого файла такое-же как и БД. Только расширение другое. Извини, не помню.
В первом случае (StreamToHex) временный файл заполнился и добавиляется в БД.
Во втором случае ( StreamToStr) заполнился только наполовину. Но при втором открытии БД будет добавлен.

Это так - на пальцах.

карма: 24
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Гость
Ответов: 17029
Рейтинг: 0
#1182: 2013-11-07 23:22:48 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2022-04-02 23:52:06
карма: 0

0
Ответов: 16884
Рейтинг: 1238
#1183: 2013-11-08 00:23:27 ЛС | профиль | цитата
На предыдущей странице
Tad писал(а):
Вот так понимают и HiAsm и сторонние
http://forum.d2h.ru//getfile/31688
И в БД пишется как стрим, если колонка типа BLOB.

Правда компилировать нужно с SQLiteObj

карма: 24
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 655
Рейтинг: 18
#1184: 2013-11-08 00:31:32 ЛС | профиль | цитата
Tad, так в примере как раз StreamToHex...соответственно файл в базе в 2 раза больше чем на самом деле весит.
Как бороться с этим?
карма: 0

0
Разработчик
Ответов: 26048
Рейтинг: 2110
#1185: 2013-11-08 00:46:06 ЛС | профиль | цитата
Gunnman писал(а):
соответственно файл в базе в 2 раза больше чем на самом деле весит.Как бороться с этим?

А не надо бороться, вот это -- x'%1' преобразует HEX в бинарные данные, а вот это -- hex(foto) обратно.
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)