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

Вниз

не сохраняются данные при закрытии в таблице   Найти похожие ветки 

 
eclipse ©   (2006-05-26 12:25) [0]

приветствую =) у меня небольшая проблемка с сохранением данных в бд... при внесении изменений в таблицу с помощью Dataset.Edit и Dataset.Post всё изменяется но при закрытии всё остаётся по старому... на форме есть Datasourse1 и Query_table =) связку из Query Table и Datasourse не получилось сделать... поэтому пришлось юзать только query и прописать у него в Query_tableUpdateRecord // Allow to change records...
знаю что если был бы тэйбл то прописав Table.Close всё должно бы сохраняться... но вот с Query такое не прокатило =)


 
Sergey13 ©   (2006-05-26 12:33) [1]

Как всегда - тайные база, компоненты и код.


 
Desdechado ©   (2006-05-26 12:33) [2]

ничего не понял, что за QueryTable
классы какие используешь?
компоненты доступа?
СУБД?


 
Сергей М. ©   (2006-05-26 12:33) [3]

Транзакцию нужно подтвердить.

см. TDatabase.Commit/Rollback


 
eclipse ©   (2006-05-26 12:46) [4]

>Сергей М
TDatabase не юзается...

>Sergey13
сейчас попробую всё объяснить =) таблица парадокс... main.db больше файлов никаких нету =) также на форме один Datasource1 и один Query... ну и + DBGridEh... хотел заюзать Datasource Table и Query но не получилось так как в такой связке просто игнорировался Query и запросы не выполнялись... хотя пробовал сделать это двумя методами точно также как описано в одной статье... поэтому отказался от Table и для Query в OnUpdateRecord прописал
// Allow to change records чтобы были изменения... думал что это прописав можно про всё забыть и при закрытии проги всё будет сохраняться =) но вот ошибся похоже...


 
Сергей М. ©   (2006-05-26 12:48) [5]


> TDatabase не юзается


Юзается, но неявно.

см. TQuery.Database


 
eclipse ©   (2006-05-26 12:50) [6]

> Сергей М.
спасибо =) сейчас попробую =)


 
eclipse ©   (2006-05-26 13:55) [7]

а не получается... пишет no user transaction is currently in progress


 
Сергей М. ©   (2006-05-26 14:07) [8]

if not MyQuery.Database.InTransaction then
 MyQuery.Database.StartTransaction;
try
...
MyQuery.Edit;
MyQuery.Post;
...
MyQuery.Database.Commit;
except
...
MyQuery.Database.Rollback;
...
end;


 
eclipse ©   (2006-05-26 14:49) [9]

а сейчас пишет The transaction isolation level must be dirty read for local databases... жаль что такие ошибки для меня в новинку...


 
MsGuns ©   (2006-05-26 14:54) [10]

>Сергей М. ©   (26.05.06 14:07) [8]
>if not MyQuery.Database.InTransaction then
MyQuery.Database.StartTransaction;

Это для парадокса-то ?


 
eclipse ©   (2006-05-26 15:02) [11]

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


 
Sergey13 ©   (2006-05-26 15:06) [12]

2 eclipse ©
CachedUpdates чему равен?


 
eclipse ©   (2006-05-26 15:10) [13]

> Sergey13
Sergey13 := true


 
Sergey13 ©   (2006-05-26 15:14) [14]

2 [13] eclipse ©   (26.05.06 15:10)
Тогда ткни в это свойство и нажми F1. Не забудь в "see also" заглянуть на предмет ApplyUpdates.


 
Сергей М. ©   (2006-05-26 15:17) [15]


> MsGuns ©   (26.05.06 14:54) [10]


Сегодня-то Парадокс, а завтра Автора "осенит идея"  поработать через BDE с другими СУБД.
Ы ?


 
MsGuns ©   (2006-05-26 15:35) [16]

>Сергей М. ©   (26.05.06 15:17) [15]
>Сегодня-то Парадокс, а завтра Автора "осенит идея"  поработать через BDE с другими СУБД.
Ы ?

Когда выпадет снег, тогда только я надену лыжи.
Ю ?


 
eclipse ©   (2006-05-26 15:45) [17]

> Sergey13
спасибо огромное =) постараюсь разобраться...


 
Сергей М. ©   (2006-05-26 15:48) [18]


> MsGuns ©   (26.05.06 15:35) [16]


У Автора-то лыжи "прямо щас" не едут) ... то ли на асфальте он, то ли ..))


 
eclipse ©   (2006-05-27 07:56) [19]

а еслю юзать UpdateSQL... почему не срабватывают запросы которые прописаны в Modify???


 
eclipse ©   (2006-05-27 08:14) [20]

и про ApplyUpdates вроде бы всё понятно что надо подтвердить изменения чтобы сбросить из кэша в таблицу... но непонятно как именнр прописать... к чему привязать...


 
ЮЮ ©   (2006-05-27 08:16) [21]


> а еслю юзать UpdateSQL... почему не срабватывают запросы
> которые прописаны в Modify???

А какой запрос там генерируется?
Если
... WHERE Field1=:OLD_FIELD1 AND FieldN=:OLD_FIELDN
то следует создать(назначить) ключевое поле, чтобы запрос имел вид
... WHERE KeyField = :OLD_KEYFIELD


 
eclipse ©   (2006-05-27 08:26) [22]

> ЮЮ ©
генерируется следующий запрос...
update "main.DB"
set
 Name = :Name,
 OEM = :OEM,
 Count = :Count,
 Price = :Price,
 Price (rub) = :Price (rub),
 Primecost = :Primecost,
 Date = :Date,
 Credit = :Credit,
 Maker = :Maker,
 Category = :Category,
 Subcat = :Subcat
where
 Index = :OLD_Index
и вроде бы он верный... или всё-таки Index по-другому прописать надо???


 
eclipse ©   (2006-05-27 08:29) [23]

в самом гриде изменения происходят... правда они и происходили так как прописан Datasource1.Dataset.Post... но если убрать этот пост и просто юзать UpdateSQL также изменения идут только в гриде... хотя по запросу всё должно меняться так как set стоит...


 
ЮЮ ©   (2006-05-27 09:56) [24]


> хотя по запросу всё должно меняться так как set стоит...

Для этого запрос должен выполниться. Ты точно указал этот UpdateSQL в качестве Query.UpdateObject? А удаление выполняется

Что-то мне не нравится название поля "Price (rub)", ибо запрос получается синтаксически неверным.


 
eclipse ©   (2006-05-27 10:00) [25]

> ЮЮ
Query.UpdateObject точно стоит... а вот про поле Price (rub) сейчас проверю...


 
ЮЮ ©   (2006-05-27 10:17) [26]

Да, кстати. а ApplyUpdates вызываешь?


 
eclipse ©   (2006-05-27 10:19) [27]

вот именно его... ApplyUpdates... мне и надо вызвать... но если прописать просто Query_tables.ApplyUpdates то происходит ошибка...


 
ЮЮ ©   (2006-05-27 10:30) [28]


> но если прописать просто Query_tables.ApplyUpdates то происходит
> ошибка...

Можно и не просто:
 if Query_tables.UpdatesPending then
   Query_tables.ApplyUpdates;
 
Самое интересное и не рассказал: ... Что за ошибка?


 
eclipse ©   (2006-05-27 10:33) [29]

> Самое интересное и не рассказал: ... Что за ошибка?
Table is read only

то есть сначала нада вызвать Query_table.Ediе???


 
ЮЮ ©   (2006-05-27 10:46) [30]

>то есть сначала нада вызвать Query_table.Ediе???

Нет, это уже казается физичесого файла таблицы. Где лежит файл? Не стоил ли галочка "только чтение" у него и индексных файлов. И нет ли гденибудь в проекте открытой TTable? Из DataDase Desctop-a открывается при открытом проекте?


 
eclipse ©   (2006-05-27 10:57) [31]

из DataBase Desctop-a открывается при открытом проекте... и поставив в условие if Query_tables.UpdatesPending then
  Query_tables.ApplyUpdates;
Showmessage если условие выполняется мессага не вывелась... то есть он query получается не видит изменений... изменения вводят в DBEditEh... свойство датасорс связано с Form_table.DataSource1 ну и у него в свою очередь стоит датасет Query_tables...


 
eclipse ©   (2006-05-29 04:16) [32]

=) а самое главное что сам CachedUpdates нужен мне не был... так как в данной проге большого плюса не превносил и был бы просто приятной мелочью =) а нужно было лишь только то чтобы Query был редактируемым... поставил CahedUpdates в true только потому что во всех статьях etc говорилось что без него Query редактируемым не будет... а оказалось чтобы он был редактируемым нада в OnUpdateRecord хотя бы банальный коммент поставить и всё будет классн =)



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

Форум: "Начинающим";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.012 c
2-1148914109
0_o
2006-05-29 18:48
2006.06.18
Обращение к родительской ветке древа


2-1149227834
kvi
2006-06-02 09:57
2006.06.18
код завершения программы


2-1148989677
VitV
2006-05-30 15:47
2006.06.18
RichEdit-вставка таблицы.


15-1148383916
Ламот
2006-05-23 15:31
2006.06.18
Помогите пож. с теорией!


15-1148137010
YurikGL
2006-05-20 18:56
2006.06.18
Remote desktop в win200 Server потеря сеанса...





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