Главная страница
    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.46 MB
Время: 0.016 c
3-1146128504
Shlomo
2006-04-27 13:01
2006.06.25
Поле uniqueidentifier запоздало генерирует своё значение?


15-1149056419
Piero
2006-05-31 10:20
2006.06.25
обновление программы


2-1149559496
Василий
2006-06-06 06:04
2006.06.25
Прозрачность Textout


2-1149363520
Adios
2006-06-03 23:38
2006.06.25
TreeView и ShellTreeView


15-1148779516
TODE
2006-05-28 05:25
2006.06.25
Как запихнуть такую процедуру в класс, чтобы небыло ошибки?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский