Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.04.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.063 c
15-1174296023
Чапаев
2007-03-19 12:20
2007.04.15
Как запретить...


2-1175111750
Ников
2007-03-28 23:55
2007.04.15
Как написать м в квадрате


2-1175082478
Alex_C
2007-03-28 15:47
2007.04.15
Видимость переменных


5-1151409437
lookin
2006-06-27 15:57
2007.04.15
Специфический редактор свойства


15-1174380182
ANB
2007-03-20 11:43
2007.04.15
Инсталляшка для БД на оракле





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский