Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

Проблемы с 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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.082 c
9-1074633038
Alex Storm
2004-01-21 00:10
2004.05.30
Создание ландшафта на GLScene


7-1082889675
gyry
2004-04-25 14:41
2004.05.30
Вырубание компа


14-1083917961
malkolinge
2004-05-07 12:19
2004.05.30
Интересно есть на форуме хоть один человек, кто ни разу


4-1082457137
Alexandr_N
2004-04-20 14:32
2004.05.30
Время


14-1084260958
pasha_golub
2004-05-11 11:35
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский