Конференция "Базы" » Непонятная ошибка [D7, MySQL]
 
  • jacksotnik (29.01.13 13:31) [0]
    Всем привет. Используя TADODataSet пытаюсь выполнить такой скрипт
    "insert into dbDatabases() values(); select last_insert_id() as DatabaseID"

    А он мне ругается мол неверный синтаксис. Хотя копирую этот скрипт и в воркбэнче он выполняется без всяких проблем. В чем причина может быть?
  • O'ShinW © (29.01.13 13:35) [1]
    попробуйте не одной строкой - работает?
  • MsGuns © (29.01.13 13:45) [2]
    TADOCommand
  • sniknik © (29.01.13 13:49) [3]
    > А он мне ругается мол неверный синтаксис.
    MySQL пакеты команд позволяет?

    > Хотя копирую этот скрипт и в воркбэнче он выполняется без всяких проблем.
    это что программа?

    > В чем причина может быть?
    может там программист предусмотрел, и делает команды отдельно? независимо от того как написано в редакторе.
  • MsGuns © (29.01.13 13:51) [4]
    В сабже скрипт, а не запрос. Соответственно нужен компонент, умеющий выполнять скрипты. Либо в "чистом виде" передавать серверу (ADOCommand)
  • jacksotnik (29.01.13 13:53) [5]
    Ну если разбиваю на 2 разных запроса то работает, но это не есть гуд. Как сделать чтоб через запятую заработало?
  • sniknik © (29.01.13 13:54) [6]
    > Как сделать чтоб через запятую заработало?
    перейти на MSSQL... или любое другое поддерживающее "пакеты" на сервере.
  • jacksotnik (29.01.13 14:00) [7]
    Хреново. Но все-же спасибо за ответ
  • Anatoly Podgoretsky © (29.01.13 14:18) [8]

    > jacksotnik   (29.01.13 13:53) [5]

    Зубилом надо рубить и кувалдой заколачивать.
    А еще лучше прочитать документацию по продукту
  • Anatoly Podgoretsky © (29.01.13 14:20) [9]
    А '123' / 2 это правильно или нет?
  • sniknik © (29.01.13 14:22) [10]
    > А '123' / 2 это правильно или нет?
    ... а вот если правильно, то исходя из этого правильно ли - '123' / 2.0
    ??? ;)
  • Anatoly Podgoretsky © (29.01.13 14:58) [11]
    Так же как и  '123'  / 2
    А автор то рассматривает батчи в отрыве от сервера, может он или нет, неважно.
  • Anatoly Podgoretsky © (29.01.13 14:59) [12]
    Хотя я могу дат ь два правильных ответа.

    1. Правильно
    2. Не правильно

    Можно выбирать!
  • sniknik © (29.01.13 15:23) [13]
    > Так же как и  '123'  / 2
    неа, в MSSQL (2000) это правильно, а 2.0 - Arithmetic overflow error converting varchar to data type numeric

    > Можно выбирать!
    ну, вот я собственно к тому же, с добавкой - даже если одно правильно/не правильно, то аналог по сути опять "можно выбирать".
  • Anatoly Pogoretsky (29.01.13 15:52) [14]
    > sniknik  (29.01.2013 15:23:13)  [13]

    Я тебя подвожу к тому, что
    это зависит от системы, в
    разных языка и даже
    версиях по разному.
    Но все таки это микрософт,
    сумел разделить строку на
    число. Гигант.
  • Виталий Панасенко (29.01.13 16:49) [15]

    > Anatoly Pogoretsky   (29.01.13 15:52) [14]
    >
    > > sniknik  (29.01.2013 15:23:13)  [13]
    >
    > Я тебя подвожу к тому, что
    > это зависит от системы, в
    > разных языка и даже
    > версиях по разному.
    > Но все таки это микрософт,
    > сумел разделить строку на
    > число. Гигант.

    Почему? в 1 диалекте БД IB/FB это реально было. с 86 года кажись
  • Anatoly Pogoretsky (29.01.13 17:21) [16]
    > Виталий Панасенко  (29.01.2013 16:49:15)  [15]

    Хочешь поговорить про
    СУБД, так мы не про них. В
    СУБД часто тип не играет
    роли, автоматическое
    преобразование.
  • sniknik © (29.01.13 17:23) [17]
    > Но все таки это микрософт,
    > сумел разделить строку на
    > число. Гигант.
    авто приведение типов есть у многих, в основном конечно на инсерте/... а не в операциях, т.что ... и тут результат правильный (ожидаемый).  
    а вот информикс тоже делит, но с несколько неожиданным результатом (в итоге = логическая ошибка) вот он "Гигант".
 
Конференция "Базы" » Непонятная ошибка [D7, MySQL]
Есть новые Нет новых   [134430   +1][b:0][p:0.001]