![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возвращение к теме удаления (ODAC)
VAleksey © (2002-04-05 12:41:00)Помните мой предыдущий вопрос под сабж "Ошибка при удалении"?
Мучает меня одна дилемма. Ситуация следующая :
OraTable1.OptionsDS.TrimFixedChar:=true;
Поле в таблице на сервере CHAR(10)
Пробуем удалить запись - ошибка "Update Failed: Found 0 records"
Меняем свойство OraTable1.OptionsDS.TrimFixedChar на false.
Пробуем удалить запись - успешно.
Кладем в модуль данных компонент OraQuery. Запрос вида "Delete from table where Field = "ИУС"" делаем Execute Query - успешно !!!???!
Почему ?
VAleksey (2002-04-05 14:32:00) [1]Ясненько
Johnmen (2002-04-05 14:18:00) [2]Поправка - ...Посему после него уже все как varchar ...
Johnmen (2002-04-05 14:16:00) [3]>{bas} : Точно так !
А связано с тем, что, напр. BDE, умничает и отсекает хвостовые пробелы...Посему после него уже нет разницы, char или varchar...
А серваку м.б. не все равно...
Johnmen (2002-04-05 13:19:00) [4]Потому, что "Delete from... транслируется напрямую, а сервак
сам поймет, что значит "ИУС".
А если через ODAC, то серв. ждет char(10)? а ты даешь char(3)...
{bas} (2002-04-05 13:19:00) [5]На самом деле есть проблема использования CHAR(...)(и я не раз с ней встречался), правдо не знаю с чем она связана(не было время разбираться), но опыт показывает лучше все поля CHAR(...) замениить на VARCHAR(...) или VARCHAR2(...) и тогда ошибок не будет.
P.S. Это не только с ODAC но и с BDE и с многим другим
roottim (2002-04-05 13:04:00) [6]IMHO потому что квери... Table всетаки первоначально загружает структуру табл и соотв ей строит запрос.. квери этим незанимается, то биш механизм другой
хотя мб и не так!
а что дают селекты на
field="блабла" и на field="блабла "
тот же результат... проверь?