-
В SQL запросах есть такое понятие - разделитель запросов - символ ";". Так вот, на сколько я знаю, SQLite позволяет выполнять несколько запросов в одном. Т.е. ExecSQL('create table t1 (a integer); insert into t1 values(20);'); Но вот если я использую UniDac для записи в SQLite, то выполняется только первый запрос, а дальше отсекается. Почему так? UniDac версии 4.0.1
-
а со следующей строки писать если?
ExecSQL('create table t1 (a integer); #13#10 insert into t1 values(20);');
-
Тоже самое. Выполняет только первую часть.
-
а два select если?
-
или инсерт
т.е., может он не понимает, что таблица уже есть? т.е. DDL и DML в одном
-
> В SQL запросах есть такое понятие - разделитель запросов > - символ ";"
Разделитель запросов в запросах? Может речь все-таки о скриптах? Не уверен что этот компонент умеет отрабатывать скрипт.
-
> В SQL запросах есть такое понятие - разделитель запросов > - символ ";".
Можно указать источник такого утверждения?
-
> В SQL запросах есть такое понятие - разделитель запросов > - символ ";".
В некоторых SQL-диалектах есть такое понятие, как разделитель команд. Например, символ ";". Также в некоторых SQL-диалектах есть понятие, как разделитель пакета команд. Например, "GO". Некоторые DAC позволяют выполнять пакетные команды, некоторые - нет. Читайте описание конкретного DAC.
-
а в некоторых можно писать ';' но именно DDL и DML нужно отделять особенной командой. >> Например, "GO". т.е., вполне выполняются insert и следующий select но не выполняется create и следующий select
-
> но именно DDL и DML нужно отделять особенной командой.
Не обязательно, это зависит от диалекта. > но не выполняется create и следующий select
set nocount on
create table #xxx(id datetime)
insert into #xxx select getdate
select * from #xxx
drop table #xxx Что я делаю не так? :)
-
> Что я делаю не так? :)
> это зависит от диалекта. :)
-
Думал, может какое свойство забыл установить, например, что-нибудь типа ExecuteDirect=True... Ладно, я пока поменял UniDAC на AnyDAC. AnyDAC выполняет все запросы, разделённые ";". Спасибо.
-
> Ладно, я пока поменял UniDAC на AnyDAC.
Это нужно делать сначала. Формируешь требование, что нужно, чтобы "работало". Потом, исходя из них, смотришь разные DAC-и. Читаешь на sql.ru сравнительные характеристики и срачи, коих там на эту тему дофига. И только потом начинаешь писать продукт.
|