![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Переход с IBX 4.52 на IBX 5.03 - нет свойства QInsert и т.п. [D5, IB6.x]
Fran © (2002-10-10 09:33:00)Здравствуйте. При переоде проекта под IBX 5.03 отказалось работать - нет свойства QInsert и т.п. в IBDataSet. Раньше я писал на вставку записей типа:
procedure TfmForm1.btnNewRecClick(Sender: TObject);
begin
with IBDataSet1 do
begin
QInsert.Params[0].AsInteger := 1;
QInsert.Params[1].AsString := "";
QInsert.Params[2].AsString := "";
QInsert.ExecQuery;
end;
end;
А теперь такой фокус не проходит, в Хелпе не смог ничего найти.
Подскажите, что делать.
Alexandr (2002-10-10 12:56:00) [1]DbGridEh заюзай, там можно запретить вставку в гриде.
Alexandr (2002-10-10 12:53:00) [2]нет уж. Возьми dbgrideh он умеет запрещать поотдельности вставку, редактирование и удаление.
Fran (2002-10-10 12:46:00) [3]ЮЮ -> IBDataSet.Insert; Ну не работает Insert т.к. значения полей Not Null, должны быть заполнены. InsertRecord - не работает, т.к. в AfterInsert стоит Cancel, чтобы Юзер не мог в гриде вставить запись перемещая курсор вниз. А ReadOnly для Грида не поставишь, т.к. некоторые поля он должен редактировать в гриде.
ЮЮ (2002-10-10 12:27:00) [4]IBDataSet.Insert;
IBDataSet.Fields[0].AsInteger := 1;
IBDataSet.Fields[1].AsString := ЕдитИзДругойФормы.Теxt;
IBDataSet.Post;
Johnmen (2002-10-10 12:23:00) [5]Понятно...
В этом случае - отдельный TIBQuery.
Fran (2002-10-10 12:19:00) [6]Johnmen -> что значит "сам сработает, когда запись будет вставлена в НД и отработан Post, и значения параметров сам возьмет из соотв-их полей НД." кем это она будет вставлена? И где это он параметры возьмет, если я вставляю запись по нажатию соответствующей кнопке на форме и в гриде нет и половины значений, которые надо вставить и вообще грид не редактируется и параметры заносятся из другой - диалоговой формы?
Johnmen (2002-10-10 12:11:00) [7]И не надо ! Он сам сработает, когда запись будет вставлена в НД и отработан Post, и значения параметров сам возьмет из соотв-их полей НД.
Fran (2002-10-10 12:04:00) [8]Johnmen -> Я там могу написать Isert into <table> Values(1,2,3)
но заставить срботать - не могу.
Johnmen (2002-10-10 11:41:00) [9]>Fran (10.10.02 11:39)
И что ?
Fran (2002-10-10 11:39:00) [10]Johnmen -> свойство InsertSQL - TStrings.
Max Zyuzin (2002-10-10 11:39:00) [11]Командой insert.
А можно для простоты вообще запросы на добавление обрабатывать отдельным компонентом.
А что бы в Гриде юзер не мог добавить строку - только через кнопкуReadOnly поможет.
Johnmen (2002-10-10 11:34:00) [12]свойство InsertSQL и иже с ними :0)
Fran (2002-10-10 11:32:00) [13]Max Zyuzin -> Да, не понимаю.(см. также ответ Johnmen ->).
Max Zyuzin (2002-10-10 11:23:00) [14]Так. давайте попорядку. я уже не понимаю нифига.
Вы не понимаете как добавить запись в таблицу при помощи IBDataSet?
Fran (2002-10-10 11:17:00) [15]Johnmen -> QInsert и т.п.раньше ассоцировал все параметры и процедуру ExecQuery с нужным SQL в IBDataSet. Дело в том, что метод Insert вызывается из TDataSet, и передать в него параметры невозможно. К тому же в IBDataSet в обработчике AfterInsert стоит Cancel - чтобы в Гриде юзер не мог добавить строку - только через кнопку.
Alexandr -> прочитал, но нужно же стремиься к новому.
Alexandr (2002-10-10 10:52:00) [16]а зачем ты на 5.03 переходил?
А перед переходом список изменений прочитал?
Johnmen (2002-10-10 10:52:00) [17]А что такое QInsert ? Для чего он ?
Fran (2002-10-10 10:48:00) [18]Alexandr -> и Locate перестал работать.
Johnmen -> нет там ничего подобного.
И что делать?
Johnmen (2002-10-10 09:44:00) [19]А что, посмотреть свойства IBDataSet влом ?
И найти соответствующее старому QInsert ?
Alexandr (2002-10-10 09:40:00) [20]и это только начало...
Не надо было переходить