![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка
RealShip © (2003-10-08 15:16:00)
Есть форма, на ней DBGridEh, есть ADOQuery, dataset которого привязана к гриду.
Выполняется запрос: query:="SELECT A.*,B.* FROM Main as B INNER JOIN Employees as A ON A.Code=B.FIO WHERE B.Month=" + IntToStr(MonthOf(MonthC.Date)) + " AND B.Year=" + IntToStr(YearOf(MonthC.Date));
При попытке обновить таблицу через
With FmMain.DBGrid.DataSource.DataSet do
begin
Edit;
FieldByName("Hours").AsFloat:=StrToFloat(EHours.Text);
FieldByName("Percents").AsFloat:=StrToFloat(EPercents.Text);
FieldByName("KTU").AsFloat:=StrToFloat(EKtu.Text);
Post;
end;
вылезает ошибка "Insufficient Base Table Information for Updating".
Помогите разобраться! Спасибо!
RealShip (2003-10-08 15:42:00) [1]
спасибо за ответ!
Сам уже разобрался: эта ошибка выскакивает тока на компах где стоит Win98 (на ХР все ок).
Оказывается, что нужно явно указывать имена таблиц в запросе, а не использовать комбинацию Main as B,Employees as A...
То есть: query:="SELECT Employees.*,Main.* FROM Main INNER JOIN Employees ON Employees.Code=Main.FIO WHERE Main.Month=" + IntToStr(MonthOf(MonthC.Date)) + " AND Main.Year=" + IntToStr(YearOf(MonthC.Date));
sniknik (2003-10-08 15:26:00) [2]
скорее всего ключа у таблице нет, сделай ключевое поле, попробуй с ним.