Текущий архив: 2004.08.01;
Скачать: CL | DM;
ВнизZeosDBO. Несколько запросов Найти похожие ветки
← →
Terminus (2004-07-05 17:15) [0]Господа, рабротал ли кто с ZeosDBO v6 + MySQL v4?
Проблема в следующем.
Пишу такой примерно код:
var
SQLQuery: TZQuery;
SQLQuery.SQL.Clear;
SQLQuery.SQL.Add("INSERT INTO users (name) VALUES (First)");
SQLQuery.SQL.Add("INSERT INTO users (name) VALUES (Second)");
SQLQuery.ExecSQL;
Так вот при этом вылетает ошибка синтаксиса MySQL во второй строчке. :(. Если выполнить запросы по очереди, т.е. после первого сделать ExecSQL и SQL.Clear, то все нормально, а вот подать несколько запросов за раз не получается. Попытка ставить в конце запроса ";" к успеху не приводила. :( Может кто сталкивался в этим?
P.S.: В самом запросе ошибок нет, база создана, таблица, поля, все ok...
← →
Соловьев © (2004-07-05 17:17) [1]выполнять запросы по очереди
← →
Sir John © (2004-07-05 17:29) [2]для выполения нескольких строк запроса одновременно используйте
ZBatchSQL
← →
Terminus (2004-07-05 17:39) [3]Хотите смейтесь, хотите нет, а такого компонента в ZeosDBO нет :(. А мне потребуется в ММОРПГ делать несколько дексятков INSERT за раз, а множественное ExecSQL все таки не ускоряет процесс :)
← →
Terminus (2004-07-05 17:41) [4]И еще. Зачем тогда ZQuery вообще свойство SQL как набор строк, если выпонить можно только одну операцию? :) Или может там какой-то разделитель ставить надо другой? Пробовал Chr(10)... без толку...
← →
Nikolay M. © (2004-07-05 17:44) [5]Если нужно делать быструю вставку, то быстрее всего будет подготовить текстовый файлик того вида, который ты напрасно пытаешься выполнить как один запрос и подать его (файл) на вход isql.
← →
Курдль © (2004-07-05 17:44) [6]А разделитель выражений? Не знаю, как для мускула, но для оракла - /
для сайбэйса - ;
← →
sniknik © (2004-07-05 17:50) [7]> множественное ExecSQL все таки не ускоряет процесс :)
выноси изменение самого запроса за цикл, смену значения (судя по приведенным 2м запросам это вполне возможно) делай в параметрах.
будет достаточно быстро. (убереш самую длительную составляющую)
> разделитель ставить надо другой?
если и есть такой то на сайте MySQL наверняка о нем написано.
← →
Sir John © (2004-07-05 17:53) [8]<>ответ:Terminus
хотите смейтесь, хотите нет - есть!
я использую zeosdbo-5.4.1-stable. Скорее всего Вы не все установили
← →
Terminus (2004-07-05 18:01) [9]Мда, походу, нет в MySQL разделителей... Прийдется делать сотню ExecSQL :(
Nikolay M.
А как в таком случае будет выглядеть подгрузка файла и выполнение запроса? Ведь в любом случае все сведется к многострочному SQLQuery.SQL и ExecSQL с ошибкой в конце... Или я не понял мысль :)
sniknik
А можно чуть поподробнее? Если речь идет просто о цикле типа
for i:=0 to Users.Count-1 do
begin
SQLQuery.SQL.Clear;
SQLQuery.SQL.Add("INSERT INTO users (name) VALUES ("""+Users.Items[i].Name+""")");
SQLQuery.ExecSQL;
end;
То это процесс не ускорит, боюсь... Это только место сэкономит. :)
← →
Соловьев © (2004-07-05 18:03) [10]
> это процесс не ускорит, боюсь... Это только место сэкономит.
> :)
тебе же сказали - параметры!
← →
Terminus (2004-07-05 18:05) [11]Sir John
Увы, в моем дистрибутиве нет ни намека на этот компонент. У меня v6.1.5
Сайт http://zeoslib.net/ лежит, как, кстати, и gamedev.ru и Аська. Или это только у меня? :)
← →
Terminus (2004-07-05 18:07) [12]Соловьев
Ну вот я и прошу чуть подробнее об этом :). Документация как-то не особо помогает...
← →
sniknik © (2004-07-05 18:14) [13]чуть подробнее об этом :)
SQLQuery.SQL.Clear;
SQLQuery.SQL.Add("INSERT INTO users (name) VALUES (:name);
for i:=0 to Users.Count-1 do begin
SQLQuery.Params[0].value:= Users.Items[i].Name;
SQLQuery.ExecSQL;
end;
примерно так, воможны вариации (Params/Parameters, Prepare, asString, ... х.з.)
(парамбайнейм лучше не использовать)
← →
Terminus (2004-07-05 19:57) [14]Ага... За ценный совет спасибо, попробую. :) Просто с параметрами тут я еще не успел столкнуться...
← →
Sir John © (2004-07-05 20:45) [15]
http://www.zeoslib.net
работает. Без проблем открывается!
← →
Terminus (2004-07-05 22:06) [16]Сейчас да, открывается :)
Спасибо всем, маневр с параметрами удался...
Страницы: 1 вся ветка
Текущий архив: 2004.08.01;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.035 c