Конференция "Базы" » Настройка Dataset [D7, IB6.x]
 
  • Motzart © (14.12.09 23:37) [0]
    Доброго времени суток!
    Описание:
    При использовании DataEditor для IBDataset, генерируемый запрос не содержит "-"(Кавычки) для полей и имен таблиц.
    И все бы ничего, но когда запрос состоит из 10-15 полей, для всех событий (Modify-Insert-Update-Refresh) ручками вписывать "-", как-то странно...
    Вопрос:
    Как настроить (что-то нужное) так, чтобы кавычки вставлялись автоматически....ну не поверю, что никак :)
  • YurikGL © (15.12.09 07:29) [1]
    Использую FIB+... чет там такой проблемы не помню
  • Sergey13 © (15.12.09 08:52) [2]
    > [0] Motzart ©   (14.12.09 23:37)

    А зачем тебе кавычки? Поля по русски что ли названы?
  • Медвежонок Пятачок © (15.12.09 10:21) [3]
    Он имеет ввиду, что запрос написан со звездой и он должен быть редактируемым.
    Но ему не хочется формировать mody/insert/delete sql
  • Sergey13 © (15.12.09 10:45) [4]
    > [3] Медвежонок Пятачок ©   (15.12.09 10:21)

    Я как то давненько не настраивал датасеты IBX (и под рукой нет), но при всей моей любви к звездочке (когда нужны действительно все поля) я что-то не припомню такой проблемы. Все поля добавляются автоматом и в редакторе просто отмечаются нужные ключевые и редактируемые.
  • Медвежонок Пятачок © (15.12.09 10:52) [5]
    возможно это так и есть если на момент дизайна есть коннект к бд и он там в это время мышкой елозит.
    но ситуация может быть сложнее.
    например
    with TIBDataSet.Create() do
    try
    ....

    и так далее.
    С одной стороны требуется наличие явных текстов для модифай и инсерт, а с другой стороны нет механизма подобного смартквери как в одаке.
    я по этой причине отказался от этой библиотеки. неудобно.
  • Motzart © (15.12.09 12:21) [6]
    Доброго дня!
    На самом деле вот так:
    Я формирую запрос хоть рантайм, хоть дизайн, и в запросе имена полей и имена  таблиц необходимо заключать в кавычки, иначе ошибка.
    То же самое, если пользоваться iSQL.
    Вопрос:
    При автоматическом формировании запросов Dataset insert\modify\delete\refresh  кавычки не проставляются.....запрос не отрабатывается - приходится ручками ставить кавычки, тогда нормально работает.
    У меня подозрение, что я просто чего-то не настроил, ну не верю, что нет решения :)
  • Motzart © (15.12.09 12:56) [7]
    Для понимания (dataset editor):
    Так работает:
    update "test"
    set
     "Name" = :"Name",
     "FullName" = :FullName,
     "Adress" = :Adress
    where
     "Name" = :OLD_Name and
     "FullName" = :OLD_FullName and
     "Adress" = :OLD_Adress
    Так НЕ работает, но так генерится автоматом:
    update test
    set
     Name = :Name,
     FullName = :FullName,
     Adress = :Adress
    where
     Name = :OLD_Name and
     FullName = :OLD_FullName and
     Adress = :OLD_Adress
  • Медвежонок Пятачок © (15.12.09 12:58) [8]
    у тебя походу регистрозависимый режим идентификаторов и третий диалект
  • Motzart © (15.12.09 13:21) [9]

    > у тебя походу регистрозависимый режим идентификаторов

    А теперь, если можно, по-русски ;)
  • Медвежонок Пятачок © (15.12.09 13:34) [10]
    Так работает:
    Так НЕ работает, но так генерится автоматом:


    и что при этом оно говорит?
  • clickmaker © (15.12.09 14:19) [11]
    > [9] Motzart ©   (15.12.09 13:21)

    Моцарт, а про регистры не знаешь )
  • Motzart © (15.12.09 18:42) [12]

    > clickmaker ©   (15.12.09 14:19) [11]

    меня не слово регистр заинтересовало, а слово режим.
  • Motzart © (15.12.09 18:45) [13]

    > и что при этом оно говорит?

    SQL error code=-204
  • Медвежонок Пятачок © (15.12.09 21:31) [14]
    http://www.delphikingdom.com/asp/answer.asp?IDAnswer=20080

    похоже у борланда это фамильная фича.

    когда то давно, когда деревья были большие и с ораклом работали через бде, то редактируемый запрос должен был быть написан большими буквами (имена таблиц)
  • Motzart © (16.12.09 00:33) [15]

    > Медвежонок Пятачок ©   (15.12.09 21:31) [14]

    не то, что-то еще, потому как начинает писать ту же ошибку и Column not found
  • Медвежонок Пятачок © (16.12.09 00:35) [16]
    все верно. не находит колонку или не находит саму таблицу
  • Медвежонок Пятачок © (16.12.09 00:39) [17]
    я про оракол то что сказал: берем квери и пишем запрос "select * from table"
    работает.
    затем включаем реквестлайв - и уже не работает, пока не будет "select * from TABLE"

    только было это давно и на бде.
  • Motzart © (16.12.09 00:46) [18]
    Дык в том и вопрос, что все как бы понятно, а как настроить Dataset Editor, чтобы не переписывать ручками ничего! В этом вопрос и состоит!
  • Медвежонок Пятачок © (16.12.09 00:51) [19]
    лучше просто перейти на правильные йогурты.
    типа fib'сов
  • Motzart © (16.12.09 01:06) [20]
    ну это конечно да, но в данном случае никак не перейти - ИБ лицензия и ни шагу в сторону никак не пойдешь...
    Так что, нет "красивого" решения?
  • Sergey13 © (16.12.09 08:33) [21]
    > [20] Motzart ©   (16.12.09 01:06)

    А запрос в
    > [7] Motzart ©   (15.12.09 12:56)

    реальный который не работает или "для примера"? Все датасеты не работают по такой схеме или конкретный?
  • Motzart © (16.12.09 10:18) [22]
    Запрос реальный (ну в смысле что проверенный).
    Все датасеты не работают.
    Более того, если я использую Query, то и в дизайне и в рантайме тоже ручками нужно добавлять кавычки в именам таблиц и полей, чтобы работало.
  • Sergey13 © (16.12.09 10:48) [23]
    > [22] Motzart ©   (16.12.09 10:18)

    Шаманство конечно, но если так попробовать.

    update test
    set
    Name = :Name,
    FullName = :FullName,
    Adress = :Adress
    where
    Id = :OLD_Id

  • Motzart © (16.12.09 10:56) [24]

    > Sergey13 ©   (16.12.09 10:48) [23]

    не доходит до конца - ошибка 204 table test not found
  • Motzart © (16.12.09 11:09) [25]
    update "test"
    set
    "Name" = :Name,
    "FullName" = :FullName,
    "Adress" = :Adress
    where
    Id = :OLD_Id
    А вот так - без проблем
  • Sergey13 © (16.12.09 11:10) [26]
    > [24] Motzart ©   (16.12.09 10:56)

    А в сторонней тулзе какой-нибудь типа ИБЭксперта запрос без кавычек идет?
  • Медвежонок Пятачок © (16.12.09 11:16) [27]
    в редакторе свойств sql есть галка "quote identifiers"
    можно порыться в исходниках редактора и посмотреть как обрабатывается эта галка
  • Motzart © (17.12.09 00:50) [28]

    > Sergey13 ©   (16.12.09 11:10) [26]

    нет, без кавычек не идет
  • Sergey13 © (17.12.09 10:46) [29]
    > [28] Motzart ©   (17.12.09 00:50)

    Тогда, ИМХО, Делфи и редактор датасетов тут ни при чем. Надо ковырять настройки сервера и свойства БД.

    ibase.ru
 
Конференция "Базы" » Настройка Dataset [D7, IB6.x]
Есть новые Нет новых   [134435   +33][b:0.002][p:0.001]