Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-49572
Cardinal
2004-01-02 20:47
2004.01.16
Помогите пожалуйста! Как добавить в popup свой пункт?


1-49528
Kinderr
2004-01-02 15:59
2004.01.16
Global hot key + Win button


14-49719
MV
2003-12-25 11:44
2004.01.16
---|Ветка была без названия|---


1-49543
perova
2004-01-02 13:03
2004.01.16
Подскажите, пожалуйста, в чем отличаются Delphi Professional,


3-49451
ррр
2003-12-17 13:45
2004.01.16
BDE, ADO, сравнение скорости доступа





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