![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
interbase(проблема ввода данных) [D7, XP]
kla$ © (2008-05-19 14:16:00)Создал бд. В ней 1 таблица. В делфе на форму кидаю IBQuery1,IBDatabase1,IBTransaction1, DataSource1 и DBGrid1. Прописываю:
IBQuery1.Database:= IBDatabase1;
IBQuery1.Transaction:= IBTransaction1;
IBDatabase1.DataBaseName:=прописываю путь;
IBDatabase1.DefaultTransaction:=IBTransaction1;
IBTransaction1.DefaultDatabase:= IBDatabase1;
DataSource1.Dataset:=IBQuery1;
DBGrid1.DataSource:=DataSource1;
Query1.active:=true;
Компилится норм, но почему то немогу вводить данные в DBGrid. Что я делаю неправильно. Буду рад любым советам, т.к. новичок в этом деле(.
kla$1 (2008-05-19 15:42:00) [81]не, вспомнил, не совсем это геморно. Все решается через параметры второго IBQuery2:
var
s:string;
c:integer;
begin
IBQuery2.Params.ParamByName('STUDNAME').Value:=Edit1.text;
IBQuery2.Params.ParamByName('SEMESTR').Value:=strtoint(Edit2.text);
IBQuery2.Params.ParamByName('DISCIPL').Value:=Edit3.text;
IBQuery2.Params.ParamByName('OTCHET').Value:=Edit4.text;
IBQuery2.Params.ParamByName('OCENKA').Value:=Edit5.text;
try
IBQuery2.ExecSQL;
except
ShowMessage('Ошибка при добавлении данных!');
IBTransaction1.RollbackRetaining;
exit;
end;
IBTransaction1.CommitRetaining;
IBQuery1.Close;
IBQUEry1.Open;
end;
Сергей М. (2008-05-19 14:44:00) [82]Можно. Но геморроя будет поболее, чем в случае с TIBDataSet - потребуется создавать отдельный объект для обновления и подключать его через св-во UpdateObject.
kla$ (2008-05-19 14:39:00) [83]а разве с помощью IBQuery нельзя вносить данные в базу?
Сергей М. (2008-05-19 14:22:00) [84]
> Что я делаю неправильно
Используешь селективный запрос.
А для выполнения модификации данных следует использовать UPDATE-запрос.
Для этого существует TIBDataSet, рассмотри его в лупу внимательно, особенно в части UpdateSQL
kla$ (2008-05-19 14:17:00) [85]
> Query1.active:=true;
IBQuery1*