Люди помогите, очень надо очень, после завтра уже отчитываться надо, а я всё не могу решить эту проблему, уйму литературы перерыл, нигде нет этого...
При на жатии на кнопку т.е. при выполнении запроса на добавление записи в таблицу происходит исключение (ошибка) такого плана, там написано :"исключение класса EOleException с сообщением 'Неопознаная ошибка'"
Вот полный код, жирным и красным цветом выделено место положения курсора при ошибке:
Код:
procedure TForm4.FormCreate(Sender: TObject);
begin
with ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT p.data, s.code_s, p.Code_p, s.Gruppa, s.Familia, s.Ima, s.Ochestvo, p.vid_Propuska, p.Kol_vo_chas' );
SQL.Add('FROM stud s, propuski p');
SQL.Add('WHERE s.code_s = p.code_s');
SQL.Add('ORDER BY s.familia');
Open;
end;
with ADOQuery2 do begin
Close;
SQL.Clear;
SQL.Add('SELECT Familia FROM stud');
SQL.Add('ORDER BY Familia');
Open;
end;
ADOQuery2.First;
While not ADOQuery2.Eof do begin
ComboBox1.Items.Add(ADOQuery2.Fields[0].AsString);
ADOQuery2.Next;
end;
//---------------------------------------
with ADOQuery3 do begin
Close;
SQL.Clear;
SQL.Add('SELECT Gruppa FROM grupp');
SQL.Add('ORDER BY Gruppa');
Open;
end;
ADOQuery3.First;
While not ADOQuery3.Eof do begin
ComboBox2.Items.Add(ADOQuery3.Fields[0].AsString);
ADOQuery3.Next;
end;
end;
procedure TForm4.Button1Click(Sender: TObject);
begin
with ADOQuery4 do begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO propuski ( code_s, Data, Vid_propuska, Kol_vo_chas )');
SQL.Add('VALUES ( (SELECT Code_s FROM stud WHERE Familia = :f ), :d, :v, :k)');
Parameters.ParseSQL(SQL.Text,true);
Parameters.ParamByName('v').Value:= ComboBox3.Text; //вид пропуска
Parameters.ParamByName('d').Value:= DateTimePicker1.Date; //дата
Parameters.ParamByName('k').Value:= Edit1.Text; //количеставо часов
Parameters.ParamByName('f').Value:= ComboBox1.Text; //фамилия
ExecSQL;
end;
with ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT p.data, s.code_s, p.Code_p, s.Gruppa, s.Familia, s.Ima, s.Ochestvo, p.vid_Propuska, p.Kol_vo_chas' );
SQL.Add('FROM stud s, propuski p');
SQL.Add('WHERE s.code_s = p.code_s');
SQL.Add('AND p.Data = :d');
SQL.Add('AND s.familia = :f');
SQL.Add('ORDER BY s.familia');
Parameters.ParseSQL(SQL.Text,true);
Parameters.ParamByName('d').Value:= DateTimePicker1.Date;
Parameters.ParamByName('f').Value:= ComboBox1.Text;
Open;
end;
end;
procedure TForm4.ComboBox1Enter(Sender: TObject); //фамилия
Var i:integer;
begin
With ADOQuery5 do begin
Close;
SQL.Clear;
SQL.Add('SELECT DISTINCT familia FROM stud');
SQL.Add('WHERE Gruppa LIKE '+quotedStr(ComboBox2.Text));
SQL.Add('ORDER by familia');
Open;
end;
ADOQuery5.First;
ComboBox1.Items.Clear;
While not ADOQuery5.eof do //Заполняем ComboBox1
begin
ComboBox1.Items.Add(ADOQuery5.Fields[0].AsString);
ADOQuery5.Next;
end;
end;
procedure TForm4.Button2Click(Sender: TObject); //показ всех пропусков
Var i:integer;
begin
with ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT p.data, s.code_s, p.Code_p, s.Gruppa, s.Familia, s.Ima, s.Ochestvo, p.vid_Propuska, p.Kol_vo_chas' );
SQL.Add('FROM stud s, propuski p');
SQL.Add('WHERE s.code_s = p.code_s');
SQL.Add('ORDER BY s.familia, p.Date');
Open;
end;
end;
procedure TForm4.DateTimePicker1CloseUp(Sender: TObject); //календарь
begin
with ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT p.data, s.code_s, p.Code_p, s.Gruppa, s.Familia, s.Ima, s.Ochestvo, p.vid_Propuska, p.Kol_vo_chas' );
SQL.Add('FROM stud s, propuski p');
SQL.Add('WHERE s.code_s = p.code_s');
SQL.Add('AND p.Data = :d');
SQL.Add('ORDER BY s.familia');
Parameters.ParseSQL(SQL.Text,true);
Parameters.ParamByName('d').Value:= DateTimePicker1.Date;
Open;
end;
end;
Может кто сталкивался с такой проблемой, прошу подскажите пажалуйста!
|