Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.51 MB
Время: 0.029 c
15-1174410324
@!!ex
2007-03-20 20:05
2007.04.15
Препод сказал: Возражаю.


1-1171963386
RJ
2007-02-20 12:23
2007.04.15
указатель на форму


1-1171893072
tytus
2007-02-19 16:51
2007.04.15
Доступ к Java 1.4.2_05 из Delphi


2-1174836171
Сорокин М
2007-03-25 19:22
2007.04.15
поиск слов


15-1173870989
Большой Джек
2007-03-14 14:16
2007.04.15
Стрим подешевел до 8 баксов




   Наверх