-
Добрый день, мастера!
После MS SQL пытаюсь разобраться с FireBird.
в таблице mt есть одно поле ID int
Создавала так: create table mt(ID int)
Теперь пытаюсь проинсертить в него значение 2 следующим образом:
IBQuery1.SQL.Add('insert into mt');
IBQuery1.SQL.Add('select 2');
IBQuery1.Open
Вылетает ошибка:
sql error code = - 104.
В MS SQL все прокатывало красиво.
Вообще я только начала изучать эту БД
+ посоветуйте толковую литературу.
Спасибо.
-
-
-
> Maska (29.07.09 13:50)
А кто сказал, что "скала" 100% совместима со стандартом сиквела? Да еще с таким наворотом!
-
> Виталий Панасенко (29.07.09 16:00) [3]
> А кто сказал, что "скала" 100% совместима со стандартом
> сиквела? Да еще с таким наворотом!
Что такое "Скала"?
-
> Maska (30.07.09 09:52) [4]
Жаргонизмы программистов разработчиков баз данных:
Firebird - птыц, жарптица, попугашек
Yaffil - дятел
InterBase - интербаза, межоснова
PostgreSQL- слоник, слонопотам
Oracle - оракул, ракло
MySQL - мускуль, недосервер.
M$ SQL - скруль, скала
...............
допишите, кто что помнит еще.
-
Firebird - огнептыц :)
-
> PEAKTOP (30.07.2009 11:38:05) [5]
А нафига к дурному приучать?
Что бы забанили, в соответстии с правилами форума.
-
> После MS SQL пытаюсь разобраться с FireBird.
Ничего сложного, если писать на стандартном ANSI SQL.
(Я вот тоже больше оракловские плюсики люблю,
а в FB приходится писать left join)
> + посоветуйте толковую литературу.
Очень толковая книжка по FB:
Хелен Борри - Firebird. Руководство разработчика
-
А зачем там Open если запрос на добавление ?
>В MS SQL все прокатывало красиво.
Вранье. Хотя бы потому что там иные компоненты доступа.
-
>ZeroDivide © (07.08.09 09:11) [8]
>Ничего сложного, если писать на стандартном ANSI SQL.
другая архитектура, другое процедурное расширение
одно то, что управление транзакциями осуществляется с клиента, уже существенное отличие
про разницу между версионником и блокировочником и говорить не приходится(впрочем, MS SQL теперь тоже умеет быть версионником)
различия огромны
они нивелируются в том случае, если база простенькая и не содержит хранимого кода
>(Я вот тоже больше оракловские плюсики люблю,
>а в FB приходится писать left join)
left join не эквивалент (+)
-
> Ничего сложного, если писать на стандартном ANSI SQL.
На каком имени и как проверить, что поведение включено в соответствующую версию сервера, словам обещаниям по поводу 100% совместимости/реализации верить не стоит - это маркетинговые утверждения, особенно сильны в ИБ
Скажи с какой версии появились функции извлечения частей даты, для Парадокса давно, но вот по семейству ИБ, хотя все годы утверждение о полной поддержки ANSI SQL
-
> Скажи с какой версии появились функции извлечения частей
> даты, для Парадокса давно, но вот по семейству ИБ, хотя
> все годы утверждение о полной поддержки ANSI SQL
С версии 1.5 однако. И да, поддержка стандарта, entry level, почти intermediate, исторически. О полной поддержке никто не заявлял. Вообще никто :)
И могу сказать, что стандарт поддерживался исторически полнее, чем у MSSQL например. По крайней мере, домены уже лет ...цать есть.
-
> Romkin (11.08.2009 11:27:12) [12]
Вот именно, что с версии 1.5 - только ты хитришь, а просил про семейство ИБ, так вот с версии 6 и к этому добавь как минимум еще 1.5 для ФБ
Насчет поддержки и уровней я в курсе, и насчет поддержки в данной ветки именно в таком стиле и было заявлено, что и вызвало возражение.
-
> >(Я вот тоже больше оракловские плюсики люблю,
> >а в FB приходится писать left join)
> left join не эквивалент (+)
Разве? И что же вы предлагаете писать вместо (+)?
-
на всякий случай, вдруг ответ все же нужен:
IBQuery1.SQL.Add('select 2 from rdb$database');
-
> makz (14.08.09 09:10) [15]
Шутник :)
-
> makz (14.08.09 09:10) [15]
вот до чего наука то уже дошла - гланды через ж... вырезают
-
>ZeroDivide © (14.08.09 08:40) [14]
>Разве?
да
навскидку, ограничения по or, in
>И что же вы предлагаете писать вместо (+)?
зависит от запроса, не так ли?)
-
>makz (14.08.09 09:10) [15]
это, возможно, хороший ответ, но - увы - не на этот вопрос)
-
> навскидку, ограничения по or, in
Не понял. Можно пример?
-
> Кщд
Именно на этот, именно так как автору вопроса хотелось (да через то самое место). :)
-
> makz (15.08.09 09:50) [21]
вообще-то автор хотел сделать insert а не select
-
> turbouser
разумеется это дополненная вторая строчка sql
IBQuery1.SQL.Add('select 2'); -> IBQuery1.SQL.Add('select 2 from rdb$database');
-
>makz (15.08.09 09:50) [21]
insert into mt(somefield) values (2)
слишком просто для гиганта мысли?
о чем Вам доступно сказали в СовестьДМ © (14.08.09 10:09) [17]
-
>ZeroDivide © (14.08.09 14:32)
[20]
select d.*, d2.*
from dual d, dual d2
where d.dummy = d2.dummy(+)
or d.dummy = d2.dummy(+)
-
>Кщд
Потрудитесь взглянуть на текст автора топика:
> Теперь пытаюсь проинсертить в него значение 2 следующим
> образом:IBQuery1.SQL.Add('insert into mt');IBQuery1.SQL.
> Add('select 2');IBQuery1.Open
Обратите внимание на "следующим образом". Я не в курсе зачем ей такой метод.
-
>makz (17.08.09 08:37) [26]
мопед не Ваш
я понял)