Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Данные из DBGrid не попадают в базу [D6, Win2k]


Страницы:   1 2 3

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


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо