-
Доброго времени суток!
Описание:
При использовании DataEditor для IBDataset, генерируемый запрос не содержит "-"(Кавычки) для полей и имен таблиц.
И все бы ничего, но когда запрос состоит из 10-15 полей, для всех событий (Modify-Insert-Update-Refresh) ручками вписывать "-", как-то странно...
Вопрос:
Как настроить (что-то нужное) так, чтобы кавычки вставлялись автоматически....ну не поверю, что никак :)
-
Использую FIB+... чет там такой проблемы не помню
-
> [0] Motzart © (14.12.09 23:37)
А зачем тебе кавычки? Поля по русски что ли названы?
-
Он имеет ввиду, что запрос написан со звездой и он должен быть редактируемым.
Но ему не хочется формировать mody/insert/delete sql
-
> [3] Медвежонок Пятачок © (15.12.09 10:21)
Я как то давненько не настраивал датасеты IBX (и под рукой нет), но при всей моей любви к звездочке (когда нужны действительно все поля) я что-то не припомню такой проблемы. Все поля добавляются автоматом и в редакторе просто отмечаются нужные ключевые и редактируемые.
-
возможно это так и есть если на момент дизайна есть коннект к бд и он там в это время мышкой елозит.
но ситуация может быть сложнее.
например
with TIBDataSet.Create() do
try
....
и так далее.
С одной стороны требуется наличие явных текстов для модифай и инсерт, а с другой стороны нет механизма подобного смартквери как в одаке.
я по этой причине отказался от этой библиотеки. неудобно.
-
Доброго дня!
На самом деле вот так:
Я формирую запрос хоть рантайм, хоть дизайн, и в запросе имена полей и имена таблиц необходимо заключать в кавычки, иначе ошибка.
То же самое, если пользоваться iSQL.
Вопрос:
При автоматическом формировании запросов Dataset insert\modify\delete\refresh кавычки не проставляются.....запрос не отрабатывается - приходится ручками ставить кавычки, тогда нормально работает.
У меня подозрение, что я просто чего-то не настроил, ну не верю, что нет решения :)
-
Для понимания (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
-
у тебя походу регистрозависимый режим идентификаторов и третий диалект
-
> у тебя походу регистрозависимый режим идентификаторов
А теперь, если можно, по-русски ;)
-
Так работает:
Так НЕ работает, но так генерится автоматом:
и что при этом оно говорит?
-
> [9] Motzart © (15.12.09 13:21)
Моцарт, а про регистры не знаешь )
-
> clickmaker © (15.12.09 14:19) [11]
меня не слово регистр заинтересовало, а слово режим.
-
> и что при этом оно говорит?
SQL error code=-204
-
-
> Медвежонок Пятачок © (15.12.09 21:31) [14]
не то, что-то еще, потому как начинает писать ту же ошибку и Column not found
-
все верно. не находит колонку или не находит саму таблицу
-
я про оракол то что сказал: берем квери и пишем запрос "select * from table"
работает.
затем включаем реквестлайв - и уже не работает, пока не будет "select * from TABLE"
только было это давно и на бде.
-
Дык в том и вопрос, что все как бы понятно, а как настроить Dataset Editor, чтобы не переписывать ручками ничего! В этом вопрос и состоит!
-
лучше просто перейти на правильные йогурты.
типа fib'сов
-
ну это конечно да, но в данном случае никак не перейти - ИБ лицензия и ни шагу в сторону никак не пойдешь...
Так что, нет "красивого" решения?
-
> [20] Motzart © (16.12.09 01:06)
А запрос в
> [7] Motzart © (15.12.09 12:56)
реальный который не работает или "для примера"? Все датасеты не работают по такой схеме или конкретный?
-
Запрос реальный (ну в смысле что проверенный).
Все датасеты не работают.
Более того, если я использую Query, то и в дизайне и в рантайме тоже ручками нужно добавлять кавычки в именам таблиц и полей, чтобы работало.
-
>
[22] Motzart © (16.12.09 10:18)
Шаманство конечно, но если так попробовать.
update test
set
Name = :Name,
FullName = :FullName,
Adress = :Adress
where
Id = :OLD_Id
-
> Sergey13 © (16.12.09 10:48) [23]
не доходит до конца - ошибка 204 table test not found
-
update "test"
set
"Name" = :Name,
"FullName" = :FullName,
"Adress" = :Adress
where
Id = :OLD_Id
А вот так - без проблем
-
> [24] Motzart © (16.12.09 10:56)
А в сторонней тулзе какой-нибудь типа ИБЭксперта запрос без кавычек идет?
-
в редакторе свойств sql есть галка "quote identifiers"
можно порыться в исходниках редактора и посмотреть как обрабатывается эта галка
-
> Sergey13 © (16.12.09 11:10) [26]
нет, без кавычек не идет
-
> [28] Motzart © (17.12.09 00:50)
Тогда, ИМХО, Делфи и редактор датасетов тут ни при чем. Надо ковырять настройки сервера и свойства БД.
ibase.ru