Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.15;
Скачать: CL | DM;

Вниз

Множество комманд в одном запросе   Найти похожие ветки 

 
Patrick   (2007-01-22 15:33) [0]

Мне надо, чтобы работало несколько комманд в одном запросе, допустим, несколько комманд insert, в тексте скрипта они разделены точкой с запятой, а тут она это дело не понимает, так правильно отделить одну команду от другой, заранее благодарен.


 
zdm ©   (2007-01-22 15:38) [1]

после каждого
insert
ExecSql
insert
ExecSql
Commit


 
zdm ©   (2007-01-22 15:41) [2]

А БД какая?


 
Patrick   (2007-01-22 15:43) [3]

ORACLE


 
Sergey13 ©   (2007-01-22 15:45) [4]

> [0] Patrick   (22.01.07 15:33)

Иногда перед командами надо написать begin, а после end. Есть и сециальные скриптовые компоненты. Смотря что за БД/компоненты.


 
zdm ©   (2007-01-22 15:52) [5]

Можно пойти проще, написать ХП и закидать её параметрами.
Кстати если много обращений то даже лучше использовать ХП, пусть сервак, а не сеть напрягается да и  параметрами передовать лучше, по скольку на одном языке будете разговаривать.


 
Patrick   (2007-01-22 15:59) [6]

Компонент ADO ExecSQL что-то не понимает, тогда видимо begin...end, а ХП в моем случае несовсем подходит


 
zdm ©   (2007-01-22 16:10) [7]

Что значит не понимает?!?!


 
zdm ©   (2007-01-22 16:10) [8]

Ты про commit не забыл?


 
zdm ©   (2007-01-22 16:13) [9]

begin...end это по любому правильней.  Просто интересно стало с каких пор ADO не понимает ExecSql?


 
Patrick   (2007-01-22 16:16) [10]

про коммит не забыл, оно сообщает об ошибке, что неверное завершение sql-предложения сразу после первого оператора, а делфи указывает на то что встретился неверный символ "INSERT" причем второй от начала, и она пытается заменить его на какие-то другие символы, типа <*и т.д.


 
zdm ©   (2007-01-22 16:19) [11]

после каждого execSql. Sql.Clear


 
zdm ©   (2007-01-22 16:20) [12]

еще совет. sql.SavetoFile("c:\...") и смотри что получается. Кидай в pl/sql developer или чем ты там пользуешся и анализируй там


 
Sergey13 ©   (2007-01-22 16:20) [13]

> [10] Patrick   (22.01.07 16:16)

Ты бы привел конкретный текст.


 
Patrick   (2007-01-22 16:21) [14]

да не у меня компонент один, а в нем несколько инсертов (пакетно).


 
zdm ©   (2007-01-22 16:31) [15]

sql.clear
sql.add
execsql
sql.clear
....
commit
Все должно работать.


 
zdm ©   (2007-01-22 16:32) [16]

А в обще действительно, приведи текст.


 
Patrick   (2007-01-22 16:35) [17]

begin

DELETE from smcardassort where idassort between 429 and 454

insert into smcardassort
select 429 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.5.%")

insert into smcardassort
select 439 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.4.%")

insert into smcardassort
select 447 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.3.%")

insert into smcardassort
select 440 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and ((sv.Tree Like "1.2.%") or (sv.Tree Like "1.6.%") or (sv.Tree Like "1.8.%") or (sv.Tree Like "1.11.%") or (sv.Tree Like "1.12.%"))
     and smc.country = "РОССИЯ"

insert into smcardassort
select 448 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and ((sv.Tree Like "1.2.%") or (sv.Tree Like "1.6.%") or (sv.Tree Like "1.8.%") or (sv.Tree Like "1.11.%") or (sv.Tree Like "1.12.%"))
     and smc.country <> "РОССИЯ"

insert into smcardassort
select 441 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.1.30.%")

insert into smcardassort
select 449 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.1.%")
     and not (sv.Tree Like "1.1.30.%")

insert into smcardassort
select 441 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.17.%")
     and smc.country = "РОССИЯ"

insert into smcardassort
select 449 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.17.%")
     and smc.country <> "РОССИЯ"

insert into smcardassort
select 442 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.9.%")
     and smc.country = "РОССИЯ"

insert into smcardassort
select 450 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.9.%")
     and smc.country <> "РОССИЯ"

insert into smcardassort
select 443 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.7.6.%")

insert into smcardassort
select 451 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.7.%")
     and not (sv.Tree Like "1.7.6.%")

insert into smcardassort
select 444 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.15.%")
     and smc.country = "РОССИЯ"

insert into smcardassort
select 452 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.15.%")
     and smc.country <> "РОССИЯ"

insert into smcardassort
select 445 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and ((sv.Tree Like "1.13.%") or (sv.Tree Like "1.16.%"))
     and smc.country = "РОССИЯ"

insert into smcardassort
select 453 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and ((sv.Tree Like "1.13.%") or (sv.Tree Like "1.16.%"))
     and smc.country <> "РОССИЯ"

insert into smcardassort
select 446 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.18.%")
     and smc.country = "РОССИЯ"

insert into smcardassort
select 454 as idassort, smc.article
from smcard smc, svaartclassif sv
where sv.article = smc.article
     and (sv.Tree Like "1.18.%")
     and smc.country <> "РОССИЯ"

COMMIT

end


 
zdm ©   (2007-01-22 16:37) [18]

код delphi плиз.


 
Patrick   (2007-01-22 16:45) [19]

MainDataModule.qCreateAssort.Prepared := true;
   MainDataModule.qCreateAssort.ExecSQL;


 
Sergey13 ©   (2007-01-22 16:46) [20]

> [17] Patrick   (22.01.07 16:35)

Ну так ; (точка с запятой в конце каждой команды) то где?


 
Patrick   (2007-01-22 16:47) [21]

проставлял, делфи пишет, что "неверный символ"


 
zdm ©   (2007-01-22 17:05) [22]

Вырежи кусок из delphi и кинь сюда.


 
Anatoly Podgoretsky ©   (2007-01-22 20:07) [23]

> Patrick  (22.01.2007 16:47:21)  [21]

Ты намекаешь, что приведенный код - это Дельфи, ну тогда без разницы есть точка с запятой или нет.


 
evvcom ©   (2007-01-23 10:30) [24]

> [21] Patrick   (22.01.07 16:47)
> проставлял, делфи пишет, что "неверный символ"

Дельфи-то тут причем? Скрипт, даже это не скрипт а безимянный блок на PL/SQL - оракловый. Дельфи только текст этот передаст ораклу и будет ждать ответа. А если ты не понимаешь, что делаешь, начни с книжек и работоспособной оболочки (developer, toad...)? а потом уж потихоньку к своей перейдешь.



Страницы: 1 вся ветка

Текущий архив: 2007.04.15;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.035 c
15-1174537847
MBo
2007-03-22 07:30
2007.04.15
Художника каждый обидеть может...


15-1171798199
ElectriC
2007-02-18 14:29
2007.04.15
Распространение программы


2-1174837916
Михаил Н
2007-03-25 19:51
2007.04.15
Как удалить из типизированого файла запись?


3-1169454228
Егоров А.Н.
2007-01-22 11:23
2007.04.15
Выражение CASE в операторе SELECT


2-1174752222
Bogdan1024
2007-03-24 19:03
2007.04.15
Дибажить приложение