Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование ADODataSet, обновление данных [D7, dBase, FoxPro]


вп ©   (2006-09-07 09:42:00) 

Использую VFP ODBC для доступа к таблицам FoxPro 2.5 for DOS.
Запрос вида select field1, field2, field3,.., fieldN from table в CommandTExt работает на ура, я имею ввиду вызовы методов ADODataSet Edit и Post. Как заставить выполнять редактирование такого вида запрос
select field1, field2, field3/100 as ALIAS_NAME,.., fieldN from table
? Получаю сообщении при вызове метода Post "Поле filed3 не найдено". а нужно именно так отображать данные.
На "Королевстве" нашел статью об использовании АДО, но там такой вариант, кажется, не рассматривается.
Буду признателен.


вп   (2006-09-08 12:19:00) [1]


> ANB ©   (07.09.06 13:30) [11]
>
> > вп   (07.09.06 13:02) [10]
>
> А типа оставить его в запросе родным, а в гриде отображать
> поделенным никак ?

см.

> вп   (07.09.06 11:15) [3]


ANB   (2006-09-07 13:30:00) [2]


> вп   (07.09.06 13:02) [10]

А типа оставить его в запросе родным, а в гриде отображать поделенным никак ?


вп   (2006-09-07 13:02:00) [3]


> кстати зачем оно в запросе тогда? сделай калькулируемое
> поле в рекордсете, или лучше просто маску полю field3 без
> всяких вычислений в запросе задать.

В запросе оно нужно. По нему осуществляется поиск быстрый(DBGridEh.) Это ВАЖНАЯ для отбора информация. Суть в том, чтобы найти в перечне документ по первичному(бумажному).


sniknik   (2006-09-07 12:14:00) [4]

> А как маску в запросе задать ?!
ну это только для строки наверное прокатит, т.е. идея в том что полю (в датасете) указать тип строковый тогда оно должно преобразовываться... (вот назад не уверен, но аксесс например должен понять, фохпрошный драйвер возможно нет (в общем не такая уж хорошая идея если подумать ;о))


вп   (2006-09-07 11:59:00) [5]

А как маску в запросе задать ?! Не сталкивался с таким... Вычислить то понятно...


sniknik   (2006-09-07 11:55:00) [6]

> Я то в OnGetTExt поля все сделал для необходимого показа.
ну значит в OnSetTExt не составит проблемы обратный разбор(вернее "сбор" из текста значение нужному полю) сделать.

кстати зачем оно в запросе тогда? сделай калькулируемое поле в рекордсете, или лучше просто маску полю field3 без всяких вычислений в запросе задать.


Sergey13   (2006-09-07 11:32:00) [7]

> [5] вп   (07.09.06 11:30)

А при чем тут грид? Поставь нередактируемым полям в датасете. Может и поможет.


вп   (2006-09-07 11:30:00) [8]

Нет, грид ReadOnly. по Insert - выставить/снять флаг


Sergey13   (2006-09-07 11:17:00) [9]

> И данные только показываются, редактируется одно поле, не
> связанное с этим

А у остальных ReadOnly выставлено?


вп   (2006-09-07 11:15:00) [10]

Я не правильно написал имя не найденого поля. Конечно, это НЕ field3, а ALIAS_NAME кАнЭчЪна. Суть в чем: в этом поле сумма в копейках, нужно в грн.коп. Я то в OnGetTExt поля все сделал для необходимого показа. И данные только показываются, редактируется одно поле, не связанное с этим(кроме одного - в одной записи лежат :-) ))). Индексы есть в таблицы. Вроде как и ключевое есть поле...Не, можно через отдельный запрос, но не интересно.Думаю, как-то это обходится. И вроде, как где-то что-то когда-то читал.Но сейчас не найду. Так как с АДО тоже нечасто сталкиваюсь


ANB   (2006-09-07 10:03:00) [11]


> field3/100

И как ты собираешься это поле редактировать ? Сервер должен знать, что это введенное число надо на 100 умножить ?
К сожалению, ADO сам генерит SQL на изменение данных. Ща придет спец по ADO - может чего подскажет, но я не нашел способа вмешаться в сей процесс.


Sergey13   (2006-09-07 09:54:00) [12]

С АДО не работал, но можно воспользоваться вычисляемыми полями, т.е. не в запросе делить, а на клиенте.


Наверх

Титульная страница Поиск, карта сайта Написать письмо