Главная страница
    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.03 c
3-1084035092
Alleum
2004-05-08 20:51
2004.05.30
Программно добавить столбец


14-1083909758
stone
2004-05-07 10:02
2004.05.30
Без прав теперь не покататься. Даже на мопеде


9-1075640127
DrOne
2004-02-01 15:55
2004.05.30
Triangle Strip


14-1084337157
SVM (Perm)
2004-05-12 08:45
2004.05.30
Delphi 7 Update Pack


8-1079639405
maxXP
2004-03-18 22:50
2004.05.30
Как растянуть видео на всю panel?





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