Вниз
Скачать: CL | DM;

После SQL-запроса Table1 недоступна!   Найти похожие ветки 

← →
Insane SPIRIT   (2006-04-27 07:55) [0]

Почему после выполнения SQL-запроса компонент TTable становится недоступным? Например, метод Table1.Edit не действует, иначе говоря, таблица не реагирует на действия. Вот код выполнения запроса:
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(Memo1.Text);
Query1.Open;
if Query1.RecordCount <> 0 then
 DataSource1.DataSet:=Query1
else
 DataSource1.DataSet:=Table1;
end;


← →
evvcom ©   (2006-04-27 08:28) [1]

Что значит "TTable становится недоступным", "Table1.Edit не действует" и "таблица не реагирует на действия"? В чем это проявляется, как определил?


← →
Desdechado ©   (2006-04-27 10:36) [2]

судя по коду, ты заменяешь работу с Ttable работой с TQuery в случае непустоты последнего
естественно, ttable при этом остается не у дел


← →
Insane SPIRIT   (2006-04-28 10:32) [3]

evvcom, определил по навигатору, у которого даже после перевода таблицы в режим редактирования доступны только кнопки перехода по записям, так же не работает эта процедура:
procedure TForm1.Edit1Change(Sender: TObject);
var StrFields: string;
begin
StrFields:="Surname";
Table1.Locate(StrFields,Edit1.Text,[loCaseInsensitive,lopartialKey]);
end;

Desdechado, ошибку свою я понял, но после блока IF я передавал DataSource1 таблицу Table1. После этого запрос не выполнялся. Я так понимаю, что получается нехватка времени между выполнением операторов DataSource1.DataSet:=Query1 и DataSource1.DataSet:=Table1. Или я ошибаюсь?


← →
Desdechado ©   (2006-04-28 11:47) [4]

что за нехватка времени?!
и где тот участок кода, в котором ты все-таки что-то куда-то возвращаешь?


← →
Плохиш ©   (2006-04-28 11:50) [5]


> Insane SPIRIT   (28.04.06 10:32) [3]
> evvcom, определил по навигатору, у которого даже после перевода
> таблицы в режим редактирования доступны только кнопки перехода
> по записям

Я так понимаю, что навигатор привязан к DataSource1? Так что же ты хочешь получить после выполнения [0]? Не пора уже логику включить?


← →
Insane SPIRIT   (2006-04-29 10:45) [6]

Пожалуйста:

begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(Memo1.Text);
Query1.Open;
if Query1.RecordCount <> 0 then
DataSource1.DataSet:=Query1
else
DataSource1.DataSet:=Table1;

DataSource1.DataSet:=Table1;

end;
procedure Modes(frm: TForm1);
begin
if frm.RBView.Checked=True then
begin
frm.Table1.Close;
frm.Table1.ReadOnly:=True;
frm.Table1.Open;
end;
if frm.RBEdit.Checked=True then
begin
frm.Table1.Close;
frm.Table1.ReadOnly:=False;
frm.Table1.Open;
frm.Table1.Edit;
end;
end;


← →
Insane SPIRIT   (2006-04-29 10:48) [7]

В процедуре Modes проверяются радиокнопки и переводится таблица в один из режимов.


← →
Плохиш ©   (2006-04-29 11:42) [8]


> Insane SPIRIT   (29.04.06 10:45) [6]

Хорошо, что мне не надо будет пользоваться этой программой. Глюкодром сплошной.


← →
ЮЮ ©   (2006-05-02 07:36) [9]


> В процедуре Modes проверяются радиокнопки и переводится
> таблица в один из режимов.


Так процедуру ещё и вызывать надо :)


> if Query1.RecordCount <> 0 then
> DataSource1.DataSet:=Query1
> else
> DataSource1.DataSet:=Table1;
>
> DataSource1.DataSet:=Table1;



Выкинь 4 первые строки, если есть 5-ая


← →
evvcom ©   (2006-05-02 08:57) [10]


> if frm.RBView.Checked=True then

:)
Достаточно if frm.RBView.Checked then

> frm.Table1.Close;
> frm.Table1.ReadOnly:=True;
> frm.Table1.Open;

Зачем переоткрывать набор? Только для того, чтобы ReadOnly установить? Лишнее. Вообще, для работы с таблицей достаточно одного компонента или TTable, или TQuery. Два - это перебор.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.04 c
2-1149661709
XTD
2006-06-07 10:28
2006.06.25
Как найти путь к моей программе?


3-1145965808
Alpine
2006-04-25 15:50
2006.06.25
Проблемма с UPPER(FIELD) LIKE .... в IB 7.01


8-1137672445
VasRoG
2006-01-19 15:07
2006.06.25
Pixel Format


15-1148501900
Yorick1986
2006-05-25 00:18
2006.06.25
За сколько можно продать ноутбук


4-1143196595
Тфьу
2006-03-24 13:36
2006.06.25
Как запретить стандартную прокрутку от колеса мыши?




   Наверх