![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
После SQL-запроса Table1 недоступна! [D7, Paradox]
Insane SPIRIT © (2006-04-27 07:55:00)Почему после выполнения 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-05-02 08:57:00) [1]
> if frm.RBView.Checked=True then
:)
Достаточноif frm.RBView.Checked then
> frm.Table1.Close;
> frm.Table1.ReadOnly:=True;
> frm.Table1.Open;
Зачем переоткрывать набор? Только для того, чтобы ReadOnly установить? Лишнее. Вообще, для работы с таблицей достаточно одного компонента или TTable, или TQuery. Два - это перебор.
ЮЮ (2006-05-02 07:36:00) [2]
> В процедуре Modes проверяются радиокнопки и переводится
> таблица в один из режимов.
Так процедуру ещё и вызывать надо :)
> if Query1.RecordCount <> 0 then
> DataSource1.DataSet:=Query1
> else
> DataSource1.DataSet:=Table1;
>
> DataSource1.DataSet:=Table1;
Выкинь 4 первые строки, если есть 5-ая
Плохиш (2006-04-29 11:42:00) [3]
> Insane SPIRIT (29.04.06 10:45) [6]
Хорошо, что мне не надо будет пользоваться этой программой. Глюкодром сплошной.
Insane SPIRIT (2006-04-29 10:48:00) [4]В процедуре Modes проверяются радиокнопки и переводится таблица в один из режимов.
Insane SPIRIT (2006-04-29 10:45:00) [5]Пожалуйста:
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;
Плохиш (2006-04-28 11:50:00) [6]
> Insane SPIRIT (28.04.06 10:32) [3]
> evvcom, определил по навигатору, у которого даже после перевода
> таблицы в режим редактирования доступны только кнопки перехода
> по записям
Я так понимаю, что навигатор привязан к DataSource1? Так что же ты хочешь получить после выполнения [0]? Не пора уже логику включить?
Desdechado (2006-04-28 11:47:00) [7]что за нехватка времени?!
и где тот участок кода, в котором ты все-таки что-то куда-то возвращаешь?
Insane SPIRIT (2006-04-28 10:32:00) [8]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-27 10:36:00) [9]судя по коду, ты заменяешь работу с Ttable работой с TQuery в случае непустоты последнего
естественно, ttable при этом остается не у дел
evvcom (2006-04-27 08:28:00) [10]Что значит "TTable становится недоступным", "Table1.Edit не действует" и "таблица не реагирует на действия"? В чем это проявляется, как определил?