Конференция "Базы" » insert в FireBird
 
  • Maska (29.07.09 13:50) [0]
    Добрый день, мастера!

    После 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 все прокатывало красиво.

    Вообще я только начала изучать эту БД
    + посоветуйте толковую литературу.
    Спасибо.
  • turbouser___ (29.07.09 14:18) [1]

    > Maska   (29.07.09 13:50)  

    Мда...
    IBQuery1.SQL.Text='insert into mt(ID) values(2)';
    IBQuery1.ExecSQL;



    > посоветуйте толковую литературу.

    Любой учебник по SQL..
    например http://www.google.ru/search?hl=ru&client=firefox&rls=org.mozilla%3Aru%3Aofficial&hs=0c6&newwindow=1&q=%D1%83%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA+%D0%BF%D0%BE+SQL+%D0%BC%D0%B0%D1%80%D1%82%D0%B8%D0%BD+%D0%B3%D1%80%D1%83%D0%B1%D0%B5%D1%80&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=f&oq=
  • turbouser___ (29.07.09 14:21) [2]

    > Maska   (29.07.09 13:50)  

    http://ibase.ru/
    и http://ibase.ru/devinfo/ibx.htm в чвстности
  • Виталий Панасенко (29.07.09 16:00) [3]

    > Maska   (29.07.09 13:50)  

    А кто сказал, что "скала" 100% совместима со стандартом сиквела? Да еще с таким наворотом!
  • Maska (30.07.09 09:52) [4]

    > Виталий Панасенко   (29.07.09 16:00) [3]



    > А кто сказал, что "скала" 100% совместима со стандартом
    > сиквела? Да еще с таким наворотом!


    Что такое "Скала"?
  • PEAKTOP © (30.07.09 11:38) [5]
    > Maska   (30.07.09 09:52) [4]

    Жаргонизмы программистов разработчиков баз данных:

    Firebird - птыц, жарптица, попугашек
    Yaffil - дятел
    InterBase - интербаза, межоснова
    PostgreSQL- слоник, слонопотам
    Oracle - оракул, ракло
    MySQL - мускуль, недосервер.
    M$ SQL - скруль, скала
    ...............
    допишите, кто что помнит еще.
  • turbouser___ (30.07.09 11:43) [6]
    Firebird - огнептыц :)
  • Anatoly Podgoretsky © (30.07.09 12:08) [7]
    > PEAKTOP  (30.07.2009 11:38:05)  [5]

    А нафига к дурному приучать?
    Что бы забанили, в соответстии с правилами форума.
  • ZeroDivide © (07.08.09 09:11) [8]

    > После MS SQL пытаюсь разобраться с FireBird.


    Ничего сложного, если писать на стандартном ANSI SQL.

    (Я вот тоже больше оракловские плюсики люблю,
    а в FB приходится писать left join)


    > + посоветуйте толковую литературу.


    Очень толковая книжка по FB:
    Хелен Борри - Firebird. Руководство разработчика
  • MsGuns © (07.08.09 09:18) [9]
    А зачем там Open если запрос на добавление ?

    >В MS SQL все прокатывало красиво.

    Вранье. Хотя бы потому что там иные компоненты доступа.
  • Кщд (10.08.09 11:43) [10]
    >ZeroDivide ©   (07.08.09 09:11) [8]
    >Ничего сложного, если писать на стандартном ANSI SQL.
    другая архитектура, другое процедурное расширение
    одно то, что управление транзакциями осуществляется с клиента, уже существенное отличие
    про разницу между версионником и блокировочником и говорить не приходится(впрочем, MS SQL теперь тоже умеет быть версионником)
    различия огромны
    они нивелируются в том случае, если база простенькая и не содержит хранимого кода

    >(Я вот тоже больше оракловские плюсики люблю,
    >а в FB приходится писать left join)
    left join не эквивалент (+)
  • Anatoly Podgoretsky © (10.08.09 12:07) [11]

    > Ничего сложного, если писать на стандартном ANSI SQL.

    На каком имени и как проверить, что поведение включено в соответствующую версию сервера, словам обещаниям по поводу 100% совместимости/реализации верить не стоит - это маркетинговые утверждения, особенно сильны в ИБ

    Скажи с какой версии появились функции извлечения частей даты, для Парадокса давно, но вот по семейству ИБ, хотя все годы утверждение о полной поддержки ANSI SQL
  • Romkin © (11.08.09 11:27) [12]

    > Скажи с какой версии появились функции извлечения частей
    > даты, для Парадокса давно, но вот по семейству ИБ, хотя
    > все годы утверждение о полной поддержки ANSI SQL

    С версии 1.5 однако. И да, поддержка стандарта, entry level, почти intermediate, исторически. О полной поддержке никто не заявлял. Вообще никто :)
    И могу сказать, что стандарт поддерживался исторически полнее, чем у MSSQL например. По крайней мере, домены уже лет ...цать есть.
  • Anatoly Podgoretsky © (11.08.09 11:59) [13]
    > Romkin  (11.08.2009 11:27:12)  [12]

    Вот именно, что с версии 1.5 - только ты хитришь, а просил про семейство ИБ, так вот с версии 6 и к этому добавь как минимум еще 1.5 для ФБ

    Насчет поддержки и уровней я в курсе, и насчет поддержки в данной ветки именно в таком стиле и было заявлено, что и вызвало возражение.
  • ZeroDivide © (14.08.09 08:40) [14]

    > >(Я вот тоже больше оракловские плюсики люблю,
    > >а в FB приходится писать left join)
    > left join не эквивалент (+)


    Разве? И что же вы предлагаете писать вместо (+)?
  • makz (14.08.09 09:10) [15]
    на всякий случай, вдруг ответ все же нужен:
    IBQuery1.SQL.Add('select 2 from rdb$database');
  • turbouser © (14.08.09 10:04) [16]

    > makz   (14.08.09 09:10) [15]

    Шутник :)
  • СовестьДМ © (14.08.09 10:09) [17]

    > makz   (14.08.09 09:10) [15]

    вот до чего наука то уже дошла - гланды через ж... вырезают
  • Кщд (14.08.09 11:26) [18]
    >ZeroDivide ©   (14.08.09 08:40) [14]
    >Разве?
    да
    навскидку, ограничения по or, in

    >И что же вы предлагаете писать вместо (+)?
    зависит от запроса, не так ли?)
  • Кщд (14.08.09 11:28) [19]
    >makz   (14.08.09 09:10) [15]
    это, возможно, хороший ответ, но - увы - не на этот вопрос)
  • ZeroDivide © (14.08.09 14:32) [20]

    > навскидку, ограничения по or, in


    Не понял. Можно пример?
  • makz (15.08.09 09:50) [21]
    > Кщд
    Именно на этот, именно так как автору вопроса хотелось (да через то самое место). :)
  • turbouser © (15.08.09 13:08) [22]

    > makz   (15.08.09 09:50) [21]

    вообще-то автор хотел сделать insert а не select
  • makz (16.08.09 08:43) [23]
    > turbouser
    разумеется это дополненная вторая строчка sql
    IBQuery1.SQL.Add('select 2'); -> IBQuery1.SQL.Add('select 2 from rdb$database');
  • Кщд (17.08.09 05:46) [24]
    >makz   (15.08.09 09:50) [21]
    insert into mt(somefield) values (2)
    слишком просто для гиганта мысли?
    о чем Вам доступно сказали в СовестьДМ ©   (14.08.09 10:09) [17]
  • Кщд (17.08.09 05:49) [25]
    >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(+)

  • makz (17.08.09 08:37) [26]
    >Кщд
    Потрудитесь взглянуть на текст автора топика:
    > Теперь пытаюсь проинсертить в него значение 2 следующим
    > образом:IBQuery1.SQL.Add('insert into mt');IBQuery1.SQL.
    > Add('select 2');IBQuery1.Open

    Обратите внимание на "следующим образом". Я не в курсе зачем ей такой метод.
  • Кщд (18.08.09 08:41) [27]
    >makz   (17.08.09 08:37) [26]
    мопед не Ваш
    я понял)
Есть новые Нет новых   [134473   +32][b:0][p:0.001]