Форум: "Базы";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
ВнизПосле 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c