Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выполнение нескольких SQL-запросов за один раз, Как это реальизовать в ADO? 
:(
    Опции темы
fess
Дата 7.1.2007, 03:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 17.2.2005
Где: г. Мурманск, Росс ия

Репутация: нет
Всего: 3



Есть много sql-комманд в текстовом файле, необходимо их все загрузить и выполнить одну за другой. Пытаюсь сделать через ADOQuery, загружаю текст запросов из файла, потом - выполнить - никак(( Оставляю только одни запрос - всё в порядке! 
Как это можно обойти? 

Например, есть текстовый файл типа:
Код

UPDATE `areatrigger_tavern` SET `name`='Westfall - Sentinel Hill Inn' WHERE (`id`='71');
UPDATE `areatrigger_tavern` SET `name`='Elwynn Forest - Goldshire - Lion\'s Pride Inn' WHERE (`id`='562');
UPDATE `areatrigger_tavern` SET `name`='Redridge Mountains - Lakeshire Inn' WHERE (`id`='682');
UPDATE `areatrigger_tavern` SET `name`='Teldrassil - Dolanaar' WHERE (`id`='715');
UPDATE `areatrigger_tavern` SET `name`='Darkshore - Auberdine' WHERE (`id`='716');
UPDATE `areatrigger_tavern` SET `name`='Ashenvale - Astranaar' WHERE (`id`='717');

Надо в нём выполнить все команды. Если оставляю одну любую команду в файле и его пытаюсь выполнить через ADOQuery - то всё - она выполняется. А 2 и более команды - ошибка:
Код

[MySQL][ODBC 3.51 Driver][mysqld-5.0.18-max]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
UPDATE `areatrigger_tavern` SET `name`='Elwynn Forest - Goldshire - Lion\'s P' at line 1

--------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом.
PM MAIL ICQ   Вверх
Vas
Дата 7.1.2007, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



А что мешает в цикле перебрать все запросы и выполнить.
Код

var StrLst:TStringList;
    i:integer;
begin
  StrLst:=TStringList.Create;
  try
    StrLst.LoadFromFile('[файл]');
    for i:=0 to StrLst.Count-1 do
      begin
        ADOQuery.SQl.Clear;
        ADOQuery.SQL.Text:=StrLst[i];
        try
          ADOQuery.ExecSQl;
        except
        end;
      end;
  finally
    StrLst.Free;
  end;
end;



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
fess
Дата 7.1.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 17.2.2005
Где: г. Мурманск, Росс ия

Репутация: нет
Всего: 3



В принципе, ничего)) Но они не всегда состоят из одной строчки (( Это в конкретном примере - каждый запрос в отдельной строке... а в общем случае - это не так...
--------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом.
PM MAIL ICQ   Вверх
Rodman
Дата 7.1.2007, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



fess, реализуй поиск зарезервированных слов или вот так
Код

var StrLst:TStringList;
    i:integer;
begin
  StrLst:=TStringList.Create;
  try
    StrLst.LoadFromFile('[файл]');
    for i:=0 to StrLst.Count-1 do
      begin
        ADOQuery.SQL.Add(StrLst[i]);
        if(pos(StrLst[i],';')then
        begin
        try
          ADOQuery.ExecSQL;
        except
        end;
         ADOQuery.SQl.Clear;
        end;
      end;
  finally
    StrLst.Free;
  end;
end;


Это сообщение отредактировал(а) Rodman - 7.1.2007, 20:36
PM MAIL WWW Skype GTalk YIM MSN   Вверх
fess
Дата 7.1.2007, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 17.2.2005
Где: г. Мурманск, Росс ия

Репутация: нет
Всего: 3



Не катит... я пробовал... там в запросах могут быть ";" и как определить, внутри ли они запроса или на этом символе он заканчивается - я не догнал... По этой же причине не поможет поиск зарезервированных слов... 
А как-нибудь по-другому, не через ADOQuery можно это сделать?
Эти файлы с запросами спокойно выполняются просто - из базы данных (используется MySQL)... не понятно, почему никак не получается такую же фишку провернуть из программы....

Это сообщение отредактировал(а) fess - 7.1.2007, 21:44
--------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом.
PM MAIL ICQ   Вверх
Rodman
Дата 7.1.2007, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



fess, кто формирует этот файл с запросами??? ты можешь сделать его одной структуры?? а потом можно подумать как его распарсить!!!

Добавлено @ 21:50 
вот еще в голову пришло...
Код

var StrLst:TStringList;
    i,j:integer;
begin
  StrLst:=TStringList.Create;
   j:=0;
  try
    StrLst.LoadFromFile('[файл]');
    for i:=0 to StrLst.Count-1 do
      begin
        ADOQuery.SQL.Add(StrLst[i]);
        if((j>0) and(pos(StrLst[i],'Select'))or(pos(StrLst[i],'SELECT'))or(pos(StrLst[i],'Update'))or(pos(StrLst[i],'UPDATE'))or...)then//перечисли с чего могут начинаться запросы... 
        begin
        try
          ADOQuery.ExecSQL;
        except
        end;
         ADOQuery.SQl.Clear;
        end;
        inc(j);
      end;
  finally
    StrLst.Free;
  end;
end;

PM MAIL WWW Skype GTalk YIM MSN   Вверх
fess
Дата 7.1.2007, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 17.2.2005
Где: г. Мурманск, Росс ия

Репутация: нет
Всего: 3



Цитата(Rodman @  7.1.2007,  21:46 Найти цитируемый пост)
fess, кто формирует этот файл с запросами??? 

Сложно сказать))) эти файлы скачиваются откуда-то из инета... Скорее всего - просто экспорт из MySql.... Их несколько... Все их надо применить для базы... Структура-то у них нормальная... Запрос и должен заканчиваться точкой с запятой... 

Цитата(Rodman @  7.1.2007,  21:46 Найти цитируемый пост)
вот еще в голову пришло...

Я говорил, что это не прокатит... по ключевым словам... Т.к. в запросе может быть строка, в которой есть это ключевое слово... И регистр неизвестен... 
Я думаю, что проблема даже не в парсинге... Как-то же можно передать много запросов в одном? Или никак?
--------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом.
PM MAIL ICQ   Вверх
Vas
Дата 8.1.2007, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Цитата(fess @  7.1.2007,  21:40 Найти цитируемый пост)
там в запросах могут быть ";" и как определить,

Не могут быть, только в конце запроса, иначе сами подумайте как бы MySQL понимал ";" в середине скрипта. В MySQL как я знаю ";" и есть признак окончания всего запроса. Вот по ним и орентируйтесь.

Добавлено @ 10:40 
Цитата(fess @  7.1.2007,  23:03 Найти цитируемый пост)
Или никак? 

Никак, токи парсить самому.

Это сообщение отредактировал(а) Vas - 8.1.2007, 10:39


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Sansa
Дата 8.1.2007, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 18.10.2006
Где: Королев

Репутация: 2
Всего: 6



Попробуй использовать ZeosDBO. Он самостоятельно разбирает введенные SQL команды.
--------------------
- Здравствуйте, я Ваш патологоанатом
PM MAIL ICQ   Вверх
Rodman
Дата 8.1.2007, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



fess, все равно надо знать структуру файла...
Цитата(Vas @  8.1.2007,  09:38 Найти цитируемый пост)
могут быть, только в конце запроса, иначе сами подумайте как бы MySQL понимал ";"

так что распарсить все равно можно...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
fess
Дата 8.1.2007, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 17.2.2005
Где: г. Мурманск, Росс ия

Репутация: нет
Всего: 3



Цитата(Vas @  8.1.2007,  10:38 Найти цитируемый пост)
Не могут быть, только в конце запроса, иначе сами подумайте как бы MySQL понимал ";" в середине скрипта. В MySQL как я знаю ";" и есть признак окончания всего запроса. Вот по ним и орентируйтесь.

Пример запроса с ';' внутри:
Код

UPDATE quest_template SET OfferRewardText='These armor kits are of solid quality, $N. If there is one thing I demand in not only my work, but the work of those in my employ, it is quality.$B$BYou\'ve done well to earn this pattern; I hope it brings you the rewards it has brought me. $B$BGains', RequestItemsText='Do you have the six thick armor kits and the wildvine I require?$B$BDon\'t think of making armor kits as monotonous work; the steady fashioning method you develop as you ply your trade on these kits helps develop your skills for the intricate work needed to make Wild Leather armor.$B$BSee - there\'s a real reason behind what you\'re making for me...', prevquestid=2847 WHERE entry = 2848;


Я примерно догнал, как парсить)) Спасибо,Vas и Rodman  за идею! В общем, точка с запятой должна быть последним символом в строке - тогда это запрос)) Вроде, пока получается) Хотя, это тоже не совсем корректно (т.к. а если 2 запроса в строке будут?)


Цитата(Sansa @  8.1.2007,  11:26 Найти цитируемый пост)
Попробуй использовать ZeosDBO. Он самостоятельно разбирает введенные SQL команды. 

Попробую)) Просто хотелось обойтись стандартными компонентами...


Это сообщение отредактировал(а) fess - 8.1.2007, 13:45
--------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом.
PM MAIL ICQ   Вверх
Vas
Дата 8.1.2007, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



";" может еще встречаться в сердине запроса но как строковое значение то бишь ';' вот, так что дело за маленьким парсить строку посимвольно и учитывать открыт " ' " или нет, если открыт и встретили ";" то пропускаем это не окончание запроса и так далее  smile 


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
SergeBS
Дата 10.1.2007, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



fess, 
У тебя НИКОГДА не получится выполнить несколько запросов "за 1 раз", т.е. за 1 загрузку Query. Подробности - в статье на DelphiKingdom, которая как-то так и названа - "Выполнение нескольких SQL-запросов" (точно не помню - сам ищи). Суть: после выполнения возвращается число, для 1 запроса оно равно 1, и только оно считается правильным. Если запросов 2 в одном запуске Query, вернется 2 - это считается ошибкой. 
Так что ищи/делай парсер. Или иди другим путем.
PM MAIL   Вверх
fess
Дата 10.1.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 17.2.2005
Где: г. Мурманск, Росс ия

Репутация: нет
Всего: 3



Цитата(SergeBS @  10.1.2007,  18:53 Найти цитируемый пост)
Или иди другим путем. 

Например, каким?
--------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом.
PM MAIL ICQ   Вверх
SergeBS
Дата 11.1.2007, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



fess, 
Цитата
 эти файлы скачиваются откуда-то из инета... 

Вот и разберись с этим - откуда и почему так. Сам попробуй скачивать в нужном тебе формате, выпытав у заказчика источник. А ежели заказчик признаваться не хочет - ну так и флаг ему в руки, пусть сам ручками парсит и вкачивает. Самый прямолинейный способ.
PM MAIL   Вверх
Rodman
Дата 11.1.2007, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Цитата(SergeBS @  11.1.2007,  07:42 Найти цитируемый пост)
ну так и флаг ему в руки, пусть сам ручками парсит и вкачивает

это не выход.. у заказчика флаг всегда в руках...


fess, тебе закономерность нужно выявить... или там формировать файл необходимого формата..
PM MAIL WWW Skype GTalk YIM MSN   Вверх
SergeBS
Дата 11.1.2007, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Rodman, 
Я человек простой. И в таких ситуациях просто беру заказчика за ручку и объясняю: "Это можно сделать, но это стоит ...". Поскольку в ТЗ таких вещей как правило не бывает. И в устных договоренностях тоже. И ЗАБЕСПЛАТНО разгребать дерьмо, которое мне подсовывают "в нагрузку", я не буду. Себе дороже. Сядут на шею и ножки свесят. Проходили... Нехай этому заказчику такую задачу решает "студент калинарного техникума" (с) Хазанов. Сам потом прибежит каяться.
Ну это оффтопик был.
Топик: ну какие, нафиг, закономерности? Файл уже есть идиотского формата. Решается просто, как валенок: после выяснения "откуда ЭТО", после каждого выкачанного SET bla-bla-bla на N строк просто вставляется пустая строка. 
Мне с периодичностью 1 раз в 2-3 месяца приходится объяснять: "Если у ВАС так все засекречено и запутано, то либо я ЭТО изменю в нужную сторону (читай - построю и выровняю очередного идиота, который в dbf-нике хочет иметь поля N(20,2)), либо ВЫ мне за эту ВАШУ секретность заплатите, причем немало". Обычно выбирают первое smile .

PM MAIL   Вверх
Sansa
Дата 15.1.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 18.10.2006
Где: Королев

Репутация: 2
Всего: 6



SergeBS, судя по всему, этот файл - архив базы какого-то web проекта (CMS, WIKI, форума)... Вполне стандартный. И переделывать движок backup and restore из-за претензий стороннего разработчика никто не будет. Так же, как и формировать для него отдельный. Да и не очень красиво выглядят 100 000 файликов содержащих по 1-5 строк. 
Тем более, что клиент mysql (а так же pgsql) а может быть еще многие, понимают его на ура. Вся беда, что реализация ADO этого не позволяет. Можно пойти 2-мя путями:
1. Обтачивать молоток, пока он не станет рубить;
2. Взять топор (поменять ядро БД).

Вот только что проверил, клиент sqlite имеет функцию .read FileName, которому я скормил файл из первого топика, и все прошло (правда, до этого пришлось создать таблицу).
Либо парсить. Кстати, обратите внимание на regexp'ы. 
--------------------
- Здравствуйте, я Ваш патологоанатом
PM MAIL ICQ   Вверх
fess
Дата 15.1.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 17.2.2005
Где: г. Мурманск, Росс ия

Репутация: нет
Всего: 3



Цитата(Sansa @  15.1.2007,  15:04 Найти цитируемый пост)
архив базы какого-то web проекта (CMS, WIKI, форума).

Угу... Это Mangos - бесплатный Word Of Warcraft сервер... И никто ничего переделывать не будет...


Цитата

Вот только что проверил, клиент sqlite имеет функцию .read FileName, которому я скормил файл из первого топика, и все прошло (правда, до этого пришлось создать таблицу).
Либо парсить. Кстати, обратите внимание на regexp'ы.  

По подробнее можно немного: что такое sqlite и regexp и с чем это едят? )

--------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом.
PM MAIL ICQ   Вверх
CatATonik
Дата 15.1.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 12.1.2007
Где: Москва

Репутация: нет
Всего: 8



А если попробовать ADOCommand, CommandType = cmdText, ParamCheck = False?
PM MAIL   Вверх
SergeBS
Дата 15.1.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Sansa, 
Цитата
Вся беда, что реализация ADO этого не позволяет.

"Вы нашу птичку не троньте!". ADO совершенно фиолетово, какие команды отправлять серваку - что DML, что DDL. И получается что нужно всего лишь скомандовать:" А ну-ка, хапнул файло, там-то лежащее, как свой скрипт." Без проблем. Собственно я, например, просто не знаю - сумеет MySQL загрузить в себя из текстухи эту тучу команд или нет. Как-то не привык, что данные кто-то хранит в виде скрипта, вбивающего их в таблицы. Уж больно неэкономно.
PM MAIL   Вверх
Sansa
Дата 15.1.2007, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 18.10.2006
Где: Королев

Репутация: 2
Всего: 6



To fess
sqlite - простенький движок базы данных, ориентированный на локальную однопользовательскую работу. Доступ к базам данных SQLite - ZEOS DBO или нативные компоненты.

Regexp - регулярные выражения, язык, позволяющий осуществлять поиск более гибко. Например, задав в строку поиска /(^(SELECT)|(INSERT)|(UPDATE).*\;$)/i вернет тебе кусок текста, начинающийся или с SELECT или с INSERT или с UPDATE и заканчивающийся точкой с запятой, если за ней сразу идет перевод строки (в различных реализациях синтаксис может слегка изменяться).
Мне наиболее понравилась реализация TRegExpr, но можно воспользоваться любой другой.
О них упомянул на случай, если все-же придется использовать ADO и парсить.

To SergeBS
Согласен, что ADO фиолетово. Просто у него (возможно только в Delphi, а какие-нибудь утилитки енто могут) не реализована возможность пакетного выполнения. 
MySQL 100% может принимать последовательность SQL команд (как из файла, так и просто из командной строки), разделенных ";".
А на счет экономичности - может быть... Зато практично. И в windows и в linux и в MacOS не потребуется никаких операций с файлом. На крайняк, мона зазиповать. 
--------------------
- Здравствуйте, я Ваш патологоанатом
PM MAIL ICQ   Вверх
baxus
Дата 21.11.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 21.11.2007

Репутация: нет
Всего: нет



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

Код

if exists (select 1
            from  sysobjects
           where  id = object_id('TableName')
            and   type = 'U')
begin
    delete from ... where ... = ...;
    delete from ... where ... = ...;
    ...
    
    drop table TableName
end

GO

create table TableName(
TableNameID PrimaryKey           not null,
M_ID     PrimaryKey            null,
D_ID    PrimaryKey           null,
Occured DateTimeStamp null,
Note float null,

constraint PK_TableName primary key  (TableNameID )
)

GO
...

Пытаюсь выполнить, через TADOQuery, но в результате получаю ошибку, ругается кажется на GO :(
Конечно самый тупой вариант это парсить самому, но может можно как-то обойтись стандартными компонентами?
PM MAIL   Вверх
Akella
Дата 21.11.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(fess @  7.1.2007,  03:20 Найти цитируемый пост)
Пытаюсь сделать через ADOQuery, 

тебе нужна компонента по названием скриптер, но для ADO я таких не встречал, поэтому сам выполняй разбор текста и загружай в кверю команды по одной
PM MAIL   Вверх
SergeBS
Дата 22.11.2007, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



baxus, 
Если у тебя все команды разделены GO, то написать свой парсер - не проблема: ищешь это GO, все что перед - загружаешь и выполняешь, его (GO) просто выкидываешь и ищешь следующий. И так до конца файла.
Или вообще юзаешь EXECUTE на сервере. Передав ему все команды как огроменную строку. Пробуй.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0743 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.