Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Множество комманд в одном запросе [D7]


Страницы:   1 2

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]

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо