Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Вниз

Проблемы с ADO + Oracle   Найти похожие ветки 

 
lightix   (2004-04-29 09:48) [0]

Проблема с компонентами ADO в Builder C++ 6.0:
при использовании в свойстве CommandText компонента ADODataSetвыражения с "cast(...) as ...", невозможно выполнить Update - набор данных сбрасывается в изначальное состояние, все изменения теряются.Что делать?


 
roottim   (2004-04-29 10:58) [1]

теперь прочти свой вопрос иак, как будто ты не ты, и попробуй ответь при стольскудной формулировке. (ни кода, ни ошибок, ни сделанных попыток)


 
kvit ©   (2004-04-29 11:09) [2]

Сколько раз говорить: "Пиши на Делфях, а не на Билдере" :)))


 
kvit ©   (2004-04-29 11:17) [3]

И действительно с формулировкой ты точно прогнал :)))


 
lightix   (2004-04-29 14:29) [4]

Дык, Витаха, это не мой вопрос, сотрудник состряпал и попросил закинуть :) а мне некогда было и прочитать че там ....
Щас объясню.
Имеем ADOConnection, который коннектится к Oracle 9 через родные Оракловые OLE DB провайдеры.
Также имеется ADODataSet, в котором помимо полей существующей таблицы, должны быть псевдостолбцы, т.е. они должны хранить данные только в наборе данных, а не в полях таблицы.
Ранее, в BCB 5 + NCOCI для этих целей использовался такой код SQL:

select field1,field2,cast(null as number) as field3,cast("" as varchar2(10)) as field4 from table1


В результате имеем в наборе данных поля field1,field2,field3,filed4, причем field3,field4 - не являются полями БД, хотя при активном датасете несут информацию.
TQuery->ProviderFlags.pflnUpdate=false для этих псевдостолбцов, для того чтобы DataSet не пытался запихнуть эти данные в таблицу.
Все замечательно работает, поля БД пишутся в таблицу, псевдостолбцы просто несут информацию которая в них записывается и т.п.

Пишется тот же самый код в ADODataSet, устанавливаем TADODataSet->ProviderFlags.pflnUpdate=false для псевдостолбцов, в результате имеем те же поля, точно так же заносим в них данные, но после сохранения данных (TADODataSet->UpdateBatch()) соджержимое псевдостолбцов исчезает, причем и данные таблицы (field1 и field2) тоже не сохраняются в БД.
Странно что никаких сообщений об ошибке и т.п. не наблюдается.


 
roottim   (2004-04-30 11:01) [5]

засада может быть в OLEDB, что отчучтвует у директ компонент NCOCI.. без поллитры тут точно никак. Лучше найти обходной путь.


 
lightix   (2004-05-06 13:37) [6]

А как можно обойти это? Вернее сформулирую вопрос так: Каким образом в набор данных ADODataSet можно добавить псевдостолбец?


 
Erik ©   (2004-05-06 14:37) [7]

Добывить то можно, но надо сделать так чтобы он не рефрешился? Тогда только одна дорога, писать наследника от ADODataSet. Хотя для Oracle это нелучшей выбор. Легче перейти например на ODAC, если конечно нетребуется многоплатформеность.


 
lightix   (2004-05-06 15:10) [8]

А больше вариантов никаких нет? Хотелось бы работать с родными билдеровскими компонентами...



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.031 c
6-1081499243
Srg
2004-04-09 12:27
2004.05.30
TMemoryStream & TidTCPServer


3-1084340816
ZHoooK
2004-05-12 09:46
2004.05.30
DBComboBox и набор данных


7-1082450954
MeF88
2004-04-20 12:49
2004.05.30
О размерах памяти консольных приложений


8-1080054213
Pa5ha
2004-03-23 18:03
2004.05.30
IndexedBuffer


14-1084042210
Shopot
2004-05-08 22:50
2004.05.30
Динамический объект.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский