Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: 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 вся ветка

Текущий архив: 2006.06.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.037 c
2-1149569942
dera
2006-06-06 08:59
2006.06.25
Как "одним махом" очистить (удалить все записи) таблицу?


3-1146593736
nopox
2006-05-02 22:15
2006.06.25
Помогите разобраться с выборкой из БД


2-1149700164
SUCUBE
2006-06-07 21:09
2006.06.25
Oшибка


2-1149760224
kitti
2006-06-08 13:50
2006.06.25
C++Builder


5-1134500036
ANB
2005-12-13 21:53
2006.06.25
Как вытащить значение индексированного свойства ?