procedure TForm1.BitBtn10Click(Sender: TObject);
begin
close;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
var s1, s2, s3, s4, s5:string;
begin
if(InputQuery('Ввод названия книги', 'Название:', s1)) then
begin
InputQuery('Ввод кода книги', 'Код:', s2);
InputQuery('Ввод количества книг', 'Количество:', s3);
InputQuery('Ввод издательства книги', 'Издательство:', s4);
InputQuery('Ввод года издания книги', 'Год:', s5);
with dm.q do
begin
Active := false;
SQL.Clear;
SQL.Add('INSERT INTO BOOK(NAME_BOOK, CODE_BOOK, QUANTITY_BOOK,');
SQL.Add('IZDATELSTVO, YEAR_IZD, ID_THEMATIC) VALUES(');
SQL.Add(QuotedStr(s1) + ',' + QuotedStr(s2) + ',' + QuotedStr(s3) + ',');
SQL.Add(QuotedStr(s4) + ',' + QuotedStr(s5) + ',');
SQL.Add(dm.SimpleDSThematic.FieldByName('ID_THEMATIC').AsString + ')');
ExecSQL;
end;
with dm.SimpleDSBook do
begin
Active := false;
DataSet.Active := false;
DataSet.Active := true;
Active := true;
Locate('NAME_BOOK', s1, [loCaseInsensitive]);
end;
end;
end;
procedure TForm1.BitBtn7Click(Sender: TObject);
var s1, s2, s3, s4:string;
begin
if(InputQuery('Ввод фамилии автора', 'Фамилия:', s1)) then
begin
InputQuery('Ввод имени автора', 'Имя:', s2);
InputQuery('Ввод отчества автора', 'Отчество:', s3);
InputQuery('Ввод кода автора', 'Код:', s4);
with dm.q do
begin
Active := false;
SQL.Clear;
SQL.Add('INSERT INTO AUTHOR(FAMILY, NAME, OTCHESTVO,');
SQL.Add('CODE_AUTHOR) VALUES(');
SQL.Add(QuotedStr(s1) + ',' + QuotedStr(s2) + ',' + QuotedStr(s3) + ',');
SQL.Add(QuotedStr(s4) + ')');
ExecSQL;
end;
with dm.SimpleDSAuthor do
begin
Active := false;
DataSet.Active := false;
DataSet.Active := true;
Active := true;
Locate('FAMILY', s1, [loCaseInsensitive]);
end;
with dm.q do
begin
Active := false;
SQL.Clear;
SQL.Add('INSERT INTO BOOK_AUTHOR(ID_BOOK, ID_AUTHOR) VALUES(');
SQL.Add(dm.SimpleDSBook.FieldByName('ID_BOOK').AsString + ',' + dm.SimpleDSAuthor.FieldByName('ID_AUTHOR').AsString + ')');
ExecSQL;
end;
end;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
PageControl1.ActivePage := TabSheet1;
dm.SQLConnection1.Connected := false;
dm.SQLConnection1.Params.Values['database'] := ExtractFileDir(ParamStr(0)) + '\bd.fdb';
dm.SQLConnection1.Connected := true;
dm.SimpleDSThematic.Active := false;
dm.SimpleDSThematic.DataSet.CommandText := 'SELECT * FROM THEMATIC';
dm.SimpleDSThematic.DataSet.Active := true;
dm.SimpleDSThematic.Active := true;
end;
procedure TForm1.PageControl1Change(Sender: TObject);
begin
if PageControl1.ActivePage = TabSheet2 then
begin
if dm.SimpleDSThematic.RecordCount = 0 then
exit;
with dm.SimpleDSBook do
begin
Active := false;
DataSet.Active := false;
DataSet.CommandText := 'SELECT * FROM BOOK WHERE ID_THEMATIC = '+
dm.SimpleDSThematic.FieldByName('ID_THEMATIC').AsString;
DataSet.Active := true;
Active := true;
end;
end;
if PageControl1.ActivePage = TabSheet3 then
begin
if dm.SimpleDSBook.RecordCount = 0 then
exit;
if dm.SimpleDSAuthor.RecordCount = 0 then
exit;
with dm.SimpleDSAuthor do
begin
Active := false;
DataSet.Active := false;
DataSet.CommandText := 'SELECT * FROM AUTHOR WHERE AUTHOR.ID_AUTHOR = '+
'(SELECT ID_AUTHOR FROM BOOK_AUTHOR WHERE BOOK_ AUTHOR.ID_BOOK = '+
dm.SimpleDSBook.FieldByName('ID_BOOK').AsString;
DataSet.Active := true;
Active := true;
end;
end;
end;
Ошибка при переходе к другой вкладке PageControl1 в Delphi 2010
Здравствуйте! При работе программы вылетает ошибка
А текст ошибки Вам ни о чем не говорит? При переходе к другой вкладке Вы, очевидно, обращаетесь к датасету, предварительно не открыв его. К св-ву RecordCount, например, можно обращаться только когда набор данных открыт.
Цитата: George
Вы, очевидно, обращаетесь к датасету, предварительно не открыв его. К св-ву RecordCount, например, можно обращаться только когда набор данных открыт.
А как открыть датасет?
Какбе Open метод есть. Либо Active := true;