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

Вниз

Кеширование изменений и ADO + MSSQL   Найти похожие ветки 

 
albr   (2005-01-31 19:54) [0]

Подскажите как можно побороть следующий глюк.

TADOQuery(qu).LockType:=ltBatchOptimistic;
qu.SQL.Text := "select convert(float, field1) field1, field2 from table1";
qu.open; qu.insert;
qu.fieldbyname("field1").asfloat := 100;
qu.fieldbyname("field2").asfloat := 100;
qu.post;
showmessage(qu.fieldbyname("field1").asstring); // вижу ничего
showmessage(qu.fieldbyname("field2").asstring); // вижу 100

тот же эффект если field1 объявлено как автоинкрементное поле.
PS
для Oracle такой неприятносити нет.


 
ЮЮ ©   (2005-02-01 05:18) [1]

// вижу ничего

М.Б. из-за того, что field1 не поле базы данных, а выражение?
Соответствкнно, запрос на корректировку записи не включает это поле? Честно говоря, сокрытие от программиста генерируеиых запросов и невозможность использовать свои - главное, за что я не люблю ADODataSet


 
Silver Alex ©   (2005-02-01 10:02) [2]

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

insert into Qu(id, field1, field2)
values (1,100,100)


 
albr   (2005-02-01 11:41) [3]

да, из за того что field1 не редактируемое поле БД....
а какая есть альтернатива TADODataSet, желательно с TADOConnection :)

to Silver Alex: ничего я не намутил
insert into Qu(id, field1, field2) values (1,100,100); - это все хорошо, но ....
Qu - это TADOQuery;
table1 - это скорее всего сложный view с вычислимыми полями, а Insert или Update делают хранимые процедуры.
А нужно, чтобы после поста не пропадали данные из датасэта введенные юзером


 
Соловьев ©   (2005-02-01 12:01) [4]


> table1 - это скорее всего сложный view с вычислимыми полями,
> а Insert или Update делают хранимые процедуры.

Как ты думаешь, если ты написал qu.insert, то это какой-то запрос. который не подчинается SQL? он такой же как и [2]. Если ты сделал обновляемую вьюху, то ты наверное написал и триггеры для этого, где дергаешь свои ХП, так вот использую [2], они так же будут дергатся, даже лучше :)

> а какая есть альтернатива TADODataSet, желательно с TADOConnection
> :)

ADOCommand


 
albr   (2005-02-01 12:19) [5]

В том то и дело, что в момент qu.insert обращения в базе не происходит и никаких SQL не генерится т.к. LockType=ltBatchOptimistic.
А сохранение должно происходит при qu.UpdateBatch();
ADOCommand ровно как и AdoDataSet используют один и тот же рекордсет обявленный в ADODB.pas

_Recordset = ADOInt.Recordset;


 
sniknik ©   (2005-02-01 13:52) [6]

> В том то и дело, что в момент qu.insert обращения в базе не происходит и никаких SQL не генерится т.к.
по post делается ресинк из базы, запрос для него можно сменить (поищи статьи на королевстве про ADO, там в 3й вроде бы, обьясняется как)

можно попробовать менять в рекордсете напрямую без "оберточных" функций, может и получится.



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

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

Наверх





Память: 0.46 MB
Время: 0.039 c
8-1100836932
negrila
2004-11-19 07:02
2005.03.06
Красивая картинка


14-1108151528
Fin
2005-02-11 22:52
2005.03.06
Две звуковые карты.


14-1108486849
ShadowDev
2005-02-15 20:00
2005.03.06
10WMZ за кейлоггер


3-1107415989
Маугли
2005-02-03 10:33
2005.03.06
Crystall Report


1-1108733095
snake_r
2005-02-18 16:24
2005.03.06
изменение размеров





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