![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Данные из DBGrid не попадают в базу [D6, Win2k]
senya © (2003-12-18 15:16:00)
Есть база FireBird.
Есть в ней табличка Table.
Есть DBGrid на форме.
ВВожу данные в DBGrid,
выполняю Table.Post и Transaction.Commit -
никакого эффекта = база пустая.
senya (2003-12-18 16:30:00) [21]
TIBQuery это хорошо, вот тока как потом данные из грида записать
в базу?? (Не понимаю)
а параметры транзакции:
read_committed
rec_version
nowait
Vlad (2003-12-18 16:27:00) [22]
DataModule1.TransactionTemp.InTransaction - чему равно в момент исполнения твоего кода ?
MV (2003-12-18 16:25:00) [23]
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 (вообще разницы не заметишь)
И покажи параметры транзакции...
senya (2003-12-18 16:19:00) [24]
а че набрасывать, все предельно просто
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:11:00) [25]
Ну, если код секретный, то набросай пример - с компонентами доступа, с обработчиками и с гридом - и покажи нам.
Vlad (2003-12-18 16:06:00) [26]
> Johnmen © (18.12.03 15:47) [10]
Копирайты с двух сторон - слишком большая честь для меня :-)))
> senya (18.12.03 15:49) [12]
Что-то с транзакциями у тебя не то. И еще подозрение вызывает переменная RecNo. Переименуй от греха подальше.
Кстати, ты так и не ответил, в какой момент исполняется этот код ?
senya (2003-12-18 16:06:00) [27]
так енто и есть все по сохранению данных
не могу понять че еще нуно?
MV (2003-12-18 15:59:00) [28]
Братушка, покажи весь код, непонятно, о чем разговаривать.
Тут на InterBase не одну собаку съели.
senya (2003-12-18 15:55:00) [29]
говоришь и refresh делаю
MV (2003-12-18 15:53:00) [30]
А ты манагеру говоришь, чтобы он тоже commit делал? Без этого - никак!
senya (2003-12-18 15:49:00) [31]
MV
поля заполняю ручками в Gride
Vlad
смотрю через EMS FireBird Manager
весь прикол еще в том, что раньше подобное много раз делал
всегда все получалось, а вот теперича какой-то глюк
и еще : даже когда таблица пустая иногда показывает в гриде ранне бывшие там строки????
MV (2003-12-18 15:48:00) [32]
Код - полностью - на стол!
Johnmen (2003-12-18 15:47:00) [33]
>никакого эффекта = база пустая.
"Неужели база совсем пустая ? :) Как проверял ?" (c) Vlad ©
Vlad (2003-12-18 15:46:00) [34]
> senya (18.12.03 15:44) [7]
> пробовал и так, не помогает
Для начала ответь, как ты узнал, что данные не сохраняются в БД ?
Только лишь по тому что они не отображаются в гриде или как ?
Во-вторый, этот код выполняется когда/где/на какое событие
MV (2003-12-18 15:44:00) [35]
Извините, конечно, ну, типа, а кроме приведенныънных строк - ничего нет? Ну, там, заполнение полей, выполнение SQL - запросов?
senya (2003-12-18 15:44:00) [36]
пробовал и так, не помогает
Vlad (2003-12-18 15:41:00) [37]
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:32:00) [38]
код такой
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);
Amoeba (2003-12-18 15:27:00) [39]
> Vlad © (18.12.03 15:24) [3]
>
> > Amoeba © (18.12.03 15:18) [1]
>
> Нет, он в голом гриде данные вводит :-)
Всякое на свете бывает...
Уже и пошутить нельзя?
Vlad (2003-12-18 15:24:00) [40]
> Amoeba © (18.12.03 15:18) [1]
Нет, он в голом гриде данные вводит :-)
> senya (18.12.03 15:16)
Неужели базасовсем пустая ? :) Как проверял ?
А вобще код бы неплохо увидать, где это ты там делаешь Post и Commit