 |  | |  | |
Полный текст материала
Другие публикации автора: Алексей Горкуша
Цитата или краткий комментарий: «... Компоненты TADOUpdateQuery, TADOUpdateSQL выполняют в точности те же функции что и компоненты BDE TQuery,TUpdateSQL.
Это может способствовать быстрому переводу программ с BDE на ADO.
...» |
Важно:- Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
- Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
- При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
- Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.
Добавить свое мнение.
| | Содержит полезные и(или) интересные сведения | [1] | 4 | 66.7% | | | | Ничего особенно нового и интересного | [2] | 2 | 33.3% | | | | Написано неверно (обязательно укажите почему) | [3] | 0 | 0% | | Всего проголосовали: 6 | | | Все понятно, материал читается легко | [1] | 2 | 66.7% | | | | Есть неясности в изложении | [2] | 1 | 33.3% | | | | Непонятно написано, трудно читается | [3] | 0 | 0% | | Всего проголосовали: 3 |
[TADOQuery] [TUpdateSQL] [ADO] [Модификация данных на клиенте, UpdateSQL]
Отслеживать это обсуждение 
Всего сообщений: 1819-10-2006 14:28
09-10-2003 15:17Сообщение которое не подписано было написано мною. Извините пожалуйста, с этой работой совсем замотался. |
|
09-10-2003 15:13Проблема заключается в том, что выгруженные данные Oracle с помощью ADOQuery и сохраненные методом SaveToFile, потом я не могу редактировать :(. Если же работаю с dbf базой то все в порядке. И еще при работе с Oracle базой бывает появляется сообщение об ошибке "Строковый литерал не закрыт". Кто нибудь знает как это побороть? Помогите пожалуйста, срочно нужно. Сообщение не подписано |
|
11-08-2003 12:22При выполнении запроса "select cast(Field1 as character) as ff from table1" при помощи ADOQuery вылезает ошибка : "Неопознанная ошибка"
Связано это с оператором cast,а в чем дело не пойму (на BDE было все нормально).Поле Field1 целого типа.
P.S. Field1,ff и table1 для примера. |
|
11-08-2003 12:19При выполнении запроса "select cast(Field1 as character) as ff from table1" при помощи ADOQuery вылезает ошибка : "Неопознанная ошибка"
Связано это с оператором cast,а в чем дело не пойму (на BDE было все нормально).Поле Field1 целого типа.
P.S. Field1,ff и table1 для примера. |
|
11-08-2003 12:18При выполнении запроса "select cast(Field1 as character) as ff from table1" при помощи ADOQuery вылезает ошибка : "Неопознанная ошибка"
Связано это с оператором cast,а в чем дело не пойму (на BDE было все нормально).Поле Field1 целого типа.
P.S. Field1,ff и table1 для примера. |
|
10-04-2003 14:23Вещь полезная, но не могу разобраться с ее работой. При использовании Query и UpdateSQL все было нормально, встала необходимость перейти на ADO компоненты, стал использовать ADOUpdateQuery и ADOUpdateSQL, но не могу добиться работы этих компонентов. При при выполнении ADOUpdateQuery.ApplyUpdates происходит возврат старых значений и изменения не сохраняются! Не могли бы подробнее описать работу этих компонент или дать ссылку где это описано? |
|
26-03-2003 13:10Кстати по поводу ошибки "Either BOF or EOF is True,or the current record has been deleted.Requested operation recuires a current record."
У меня возникает при добавлении полей в дизайнере (помойму вызывается метод GetFieldList) для хранимой процедуры (в тесте процедуры есть update и 1 возвращаемое поле). Необходимым условием для появлянеия ошибки является первоначальное отсутствие коннекда к БД и неправильно заданные параметры вызова (например null).
В дизайнтайме возникает только один раз а в рунтайме зацикливается -явный глюк!
Значит вылечить такую ошибку очень просто:
1) заранее открыть коннест к БД
2) правильно задать параметры вызова!
3) задать поля для датасета в дизайнере |
|
25-03-2003 13:51Кстати еще один глюк движка ADO если данные сохранить в файл а потом загрузить их в пустой ADOquery их тоже нельзя будет редактировать хотя мне не совсем ясно такое поведение компонентов. |
|
24-03-2003 20:30Все это конечно хорошо и компоненты неплохие, но они все равно не снимают клавного ограничения ADO - потерю контроля над редактированием данных и LockType=ltBatchOptimistic здесь не помагает.
К примеру если я использую в качесте запроса хранимую процедуру (BD Informix), то данные открываются только для чтения (видно движок ADO неможет найти индексные поля или Informix не возвращает клиенту необходимые свойства, метаданные).
В BDE все решалось просто добавил пустой UpdateSQL и редактируй себе на здоровье, а здесь приходится выкручиваться и предварительно выгружать данные во временную таблицу и потом работать с ней.
Может кто знает способ как заставить ADOquery открываться всегда в режиме редактирования? |
|
30-12-2002 11:35Здраствуйте. Может кто подскажет что делать:
Есть AdoConenction, AdoQuery. В AdoQuery запрос. Всй работает , крутится пока на очередное выполнение запроса BOF=EOF=true и вылезает эксепшн после которого ни закрыть ни открыть заново AdoQuery нельзя. Более того - если Делаем AdoQuery->Open(); <вернулось 0 записей> тут же AdoQuery->Close() - сразу эксепшн. Что делать - никак понять не могу. Компайлилось всё на Bulder C++5.0. Спасибо. |
|
18-09-2002 15:28сообщение от автора материала Еще одна ошибка:
Необходимо переопредилить метод InternalClose в классе TADOUpdateQuery для отчистки буфера удаленных записей
protected
...........
procedure InternalClose; override;
..........
implementation
..........
procedure TADOUpdateQuery.InternalClose;
begin
ClearBuffer; // Отчистили буфер удаленных записей
inherited InternalClose;
end;
..........
|
|
05-09-2002 09:23сообщение от автора материала 'Есть ошибка - для корректной работы ДатаСет должен быть обязательно подключён к отдельному Коннекшену, а просто через КоннекшнСтринг не катит. Но это не страшно :)'
В чем эта ошибка заключается и как проявляется?
Компонент обновления даных (TADOUpdateSQL) работает через то же соединение, что и TADOUpdateQuery которому он принадлежит. |
|
04-09-2002 17:01Довольно прикольная вещь, только непонятно почему Борландовцы сами такого не нашкрябали.
Есть ошибка - для корректной работы ДатаСет должен быть обязательно подключён к отдельному Коннекшену, а просто через КоннекшнСтринг не катит. Но это не страшно :)
Может ещё какие ошибки есть - ща начну эксплуатировать и посмотрю.
Сергей.
З.Ы. Как лень раскладку переключать с АНгл. на Рус. и обратно... |
|
18-06-2002 13:14Стоит ли использовать эти компоненты, если пишешь с нуля?
Или использовать ADO-шные методы типа Append? |
|
18-06-2002 13:13Стоит ли использовать эти компоненты, если пишешь с нуля?
Или использовать ADO-шные методы типа Append? |
|
15-05-2002 10:44сообщение от автора материала 'А если два раза applyupdates вызвать то что произойдет ?'
Произойдет повторное исполнение запросов в TADOUpdateSQL
(Это не есть хорошо, так как, например, произойдет повторная вставка записи). Для этого После applyupdates необходим commitupdates. Либо в методе applyupdates, отслеживать эту ситуацию (грубо говоря вызывать requery)
А без requery в commitupdates можно обойтись ?
Нет. Он (requery) сбрасывает статусы записей
'А в updatesql несколько запросов на каждый из видов обновления это правильно ?'
Да. Сделано как в компоненте TUpdateSQL (BDE)
'А identity поля появятся после applyupdates или только после commitupdates ?'
После commitupdates
ApplyUpdates, обычно вызывают в теле транзакции, в случае отсутсвия ошибок делают commitupdates и Commit для транзакции
'А можно заместо хранилища удаленных записей filtergroup использовать ?'
Если получится, то можно :-), дело в том, что когда устанавливаешь фильтр на показ удаленных записей (fgPredicate - тут вообще ошибка), то их количество соответсвует действительности, а вот самих данных нет (пустые строки), а они нужны для заполнения параметров запроса удаления.
хранилища удаленных записей - самый простой способ (IMHO). |
|
15-05-2002 08:25А если два раза applyupdates вызвать то что произойдет ?
А без requery в commitupdates можно обойтись ?
А в updatesql несколько запросов на каждый из видов обновления это правильно ? может лучше один и в зависимости от типа изменений его настраивать
А identity поля появятся после applyupdates или только после commitupdates ?
А можно заместо хранилища удаленных записей filtergroup использовать ? |
|
|
|