Форум: "Базы";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
ВнизДанные из DBGrid не попадают в базу Найти похожие ветки
← →
senya (2003-12-18 15:16) [0]Есть база FireBird.
Есть в ней табличка Table.
Есть DBGrid на форме.
ВВожу данные в DBGrid,
выполняю Table.Post и Transaction.Commit -
никакого эффекта = база пустая.
← →
Amoeba (2003-12-18 15:18) [1]А DataSource и DataSet есть?
← →
senya (2003-12-18 15:21) [2]да
Table : TIBTable and DataSource1 : TDataSource
← →
Vlad (2003-12-18 15:24) [3]
> Amoeba © (18.12.03 15:18) [1]
Нет, он в голом гриде данные вводит :-)
> senya (18.12.03 15:16)
Неужели база совсем пустая ? :) Как проверял ?
А вобще код бы неплохо увидать, где это ты там делаешь Post и Commit
← →
Amoeba (2003-12-18 15:27) [4]
> Vlad © (18.12.03 15:24) [3]
>
> > Amoeba © (18.12.03 15:18) [1]
>
> Нет, он в голом гриде данные вводит :-)
Всякое на свете бывает...
Уже и пошутить нельзя?
← →
senya (2003-12-18 15:32) [5]код такой
RecNo := DataModule1.TableSpecSale.RecNo;
DataModule1.TableSpecSale.Post;
if DataModule1.TransactionTemp.InTransaction then
DataModule1.TransactionTemp.Commit;
DataModule1.TableSpecSale.Open;
DataModule1.TableSpecSale.Edit;
DataModule1.TableSpecSale.MoveBy(RecNo);
← →
Vlad (2003-12-18 15:41) [6]
RecNo := DataModule1.TableSpecSale.RecNo;
DataModule1.TableSpecSale.Post;
if DataModule1.TransactionTemp.InTransaction then
DataModule1.TransactionTemp.Commit;
DataModule1.TableSpecSale.Close;
DataModule1.TableSpecSale.Open;
DataModule1.TableSpecSale.MoveBy(RecNo);
DataModule1.TableSpecSale.Edit;
← →
senya (2003-12-18 15:44) [7]пробовал и так, не помогает
← →
MV (2003-12-18 15:44) [8]Извините, конечно, ну, типа, а кроме приведенныънных строк - ничего нет? Ну, там, заполнение полей, выполнение SQL - запросов?
← →
Vlad (2003-12-18 15:46) [9]
> senya (18.12.03 15:44) [7]
> пробовал и так, не помогает
Для начала ответь, как ты узнал, что данные не сохраняются в БД ?
Только лишь по тому что они не отображаются в гриде или как ?
Во-вторый, этот код выполняется когда/где/на какое событие
← →
Johnmen (2003-12-18 15:47) [10]>никакого эффекта = база пустая.
"Неужели база совсем пустая ? :) Как проверял ?" (c) Vlad ©
← →
MV (2003-12-18 15:48) [11]Код - полностью - на стол!
← →
senya (2003-12-18 15:49) [12]MV
поля заполняю ручками в Gride
Vlad
смотрю через EMS FireBird Manager
весь прикол еще в том, что раньше подобное много раз делал
всегда все получалось, а вот теперича какой-то глюк
и еще : даже когда таблица пустая иногда показывает в гриде ранне бывшие там строки????
← →
MV (2003-12-18 15:53) [13]А ты манагеру говоришь, чтобы он тоже commit делал? Без этого - никак!
← →
senya (2003-12-18 15:55) [14]говоришь и refresh делаю
← →
MV (2003-12-18 15:59) [15]Братушка, покажи весь код, непонятно, о чем разговаривать.
Тут на InterBase не одну собаку съели.
← →
senya (2003-12-18 16:06) [16]так енто и есть все по сохранению данных
не могу понять че еще нуно?
← →
Vlad (2003-12-18 16:06) [17]
> Johnmen © (18.12.03 15:47) [10]
Копирайты с двух сторон - слишком большая честь для меня :-)))
> senya (18.12.03 15:49) [12]
Что-то с транзакциями у тебя не то. И еще подозрение вызывает переменная RecNo. Переименуй от греха подальше.
Кстати, ты так и не ответил, в какой момент исполняется этот код ?
← →
MV (2003-12-18 16:11) [18]Ну, если код секретный, то набросай пример - с компонентами доступа, с обработчиками и с гридом - и покажи нам.
← →
senya (2003-12-18 16:19) [19]а че набрасывать, все предельно просто
IBDatabase, IBTransaction, IBTable,DataSource,DBGrid, Button
IBDatabase.Connected = True
IBTransaction = Read Committed
Table.Active = False
OnFormCreate :
Table.Open;
Table.Edit;
OnButtonClick:
тот код, который приводил
вот собсно и все
← →
MV (2003-12-18 16:25) [20]Working with TTable and TQuery
Although TTable is very convenient for its RAD methods and its abtract data-aware
model, it should never be used with InterBase. TTable is not designed to be used with
client/server applications; it is designed for use on relatively small tables in a local
database, accessed in core memory.
...
In a client/server architecture, you should use TQuery instead.
InterBase 6
Developer’s
Guide, page 33
Короче, не мучайся, а используй TIBQuery с SelectSQL.Text := "select * from MyTable" и с RequestLive := true (вообще разницы не заметишь)
И покажи параметры транзакции...
← →
Vlad (2003-12-18 16:27) [21]DataModule1.TransactionTemp.InTransaction - чему равно в момент исполнения твоего кода ?
← →
senya (2003-12-18 16:30) [22]TIBQuery это хорошо, вот тока как потом данные из грида записать
в базу?? (Не понимаю)
а параметры транзакции:
read_committed
rec_version
nowait
← →
senya (2003-12-18 16:31) [23]Vlad © (18.12.03 16:27) [21]
"False"
← →
MV (2003-12-18 16:31) [24]А TIBDataSet? НЕ хочешь?
← →
Johnmen (2003-12-18 16:33) [25]MV (18.12.03 16:25)
Чтоб не мучиться (RequestLive в TIBQuery ???) и делать по уму, надо TIDataSet.
TIBQuery для других задач...
← →
MV (2003-12-18 16:34) [26]Насчет DataSet = это сразу 4 (четыре) sql - запроса в одном!
Select SQL, Insert Sql, Delete и Refresh. Все остальное - как обычно. Лучше его - только FIB+ (хотя, конечно, дело вкуса)
← →
MV (2003-12-18 16:34) [27]Насчет RequestLive- big pardon...
← →
senya (2003-12-18 16:35) [28]MV (18.12.03 16:31) [24]
как-то и не знаю, всегда вроде и так получалось
думаешь поможет, ведь вроде и так намана написано, тока не работает?!
← →
MV (2003-12-18 16:36) [29]!!!!!
Попробуй
write
nowait
rec_version
read_committed
← →
Vlad (2003-12-18 16:38) [30]
> senya (18.12.03 16:31) [23]
> Vlad © (18.12.03 16:27) [21]
> "False"
Транзакции нет, Commit не выполняется.
← →
senya (2003-12-18 16:40) [31]Vlad © (18.12.03 16:38) [30]
извини эт я гоню, тама True
транзакция выполняется, сам первым делом проверял
← →
MV (2003-12-18 16:40) [32]Значит, что-то в параметрах TIBTable!
← →
MV (2003-12-18 16:41) [33]Ну, добавь строчку
write
в параметры транзакции...
← →
senya (2003-12-18 16:43) [34]MV (18.12.03 16:41) [33]
попробовал не помогает
такое впечатление, что не видит того, что в грид что-то введено
← →
Vlad (2003-12-18 16:44) [35]А у тебя IBTable.CachedUpdates чему равно ?
← →
sad (2003-12-18 16:46) [36]if not (DataModule1.TransactionTemp.InTransaction) then
DataModule1.TransactionTemp.StartTransaction
← →
senya (2003-12-18 16:48) [37]Vlad © (18.12.03 16:44) [35]
False
← →
Vlad (2003-12-18 16:52) [38]
> senya (18.12.03 16:48) [37]
Попробуй сделать CachedUpdates=true и после Post делай TableSpecSale.ApplyUpdates
← →
senya (2003-12-18 16:54) [39]Vlad © (18.12.03 16:52) [38]
попробую
← →
MV (2003-12-18 17:06) [40]Ну, СЕНЯ! Держи пример на мыло. Только в базе укажи реальный путь в Design-time. Вариант и с TIBTable, и с TIBDataSet
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.011 c