![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Множество комманд в одном запросе [D7]
Patrick © (2007-01-22 15:33:00)Мне надо, чтобы работало несколько комманд в одном запросе, допустим, несколько комманд insert, в тексте скрипта они разделены точкой с запятой, а тут она это дело не понимает, так правильно отделить одну команду от другой, заранее благодарен.
evvcom (2007-01-23 10:30:00) [1]> [21] Patrick (22.01.07 16:47)
> проставлял, делфи пишет, что 'неверный символ'
Дельфи-то тут причем? Скрипт, даже это не скрипт а безимянный блок на PL/SQL - оракловый. Дельфи только текстэтот передаст ораклу и будет ждать ответа. А если ты не понимаешь, что делаешь, начни с книжек и работоспособной оболочки (developer, toad...)? а потом уж потихоньку к своей перейдешь.
Anatoly Podgoretsky (2007-01-22 20:07:00) [2]> Patrick (22.01.2007 16:47:21) [21]
Ты намекаешь, что приведенный код - это Дельфи, ну тогда без разницы есть точка с запятой или нет.
zdm (2007-01-22 17:05:00) [3]Вырежи кусок из delphi и кинь сюда.
Patrick (2007-01-22 16:47:00) [4]проставлял, делфи пишет, что 'неверный символ'
Sergey13 (2007-01-22 16:46:00) [5]> [17] Patrick (22.01.07 16:35)
Ну так ; (точка с запятой в конце каждой команды) то где?
Patrick (2007-01-22 16:45:00) [6]MainDataModule.qCreateAssort.Prepared := true;
MainDataModule.qCreateAssort.ExecSQL;
zdm (2007-01-22 16:37:00) [7]код delphi плиз.
Patrick (2007-01-22 16:35:00) [8]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:32:00) [9]А в обще действительно, приведи текст.
zdm (2007-01-22 16:31:00) [10]sql.clear
sql.add
execsql
sql.clear
....
commit
Все должно работать.
Patrick (2007-01-22 16:21:00) [11]да не у меня компонент один, а в нем несколько инсертов (пакетно).
Sergey13 (2007-01-22 16:20:00) [12]> [10] Patrick (22.01.07 16:16)
Ты бы привел конкретный текст.
zdm (2007-01-22 16:20:00) [13]еще совет. sql.SavetoFile('c:\...') и смотри что получается. Кидай в pl/sql developer или чем ты там пользуешся и анализируй там
zdm (2007-01-22 16:19:00) [14]после каждого execSql. Sql.Clear
Patrick (2007-01-22 16:16:00) [15]про коммит не забыл, оно сообщает об ошибке, что неверное завершение sql-предложения сразу после первого оператора, а делфи указывает на то что встретился неверный символ 'INSERT' причем второй от начала, и она пытается заменить его на какие-то другие символы, типа <*и т.д.
zdm (2007-01-22 16:13:00) [16]begin...end это по любому правильней. Просто интересно стало с каких пор ADO не понимает ExecSql?
zdm (2007-01-22 16:10:00) [17]Ты про commit не забыл?
zdm (2007-01-22 16:10:00) [18]Что значит не понимает?!?!
Patrick (2007-01-22 15:59:00) [19]Компонент ADO ExecSQL что-то не понимает, тогда видимо begin...end, а ХП в моем случае несовсем подходит
zdm (2007-01-22 15:52:00) [20]Можно пойти проще, написать ХП и закидать её параметрами.
Кстати если много обращений то даже лучше использовать ХП, пусть сервак, а не сеть напрягается да и параметрами передовать лучше, по скольку на одном языке будете разговаривать.