Показать сообщение отдельно
  #1  
Старый 08.04.2009, 13:01
civicuu civicuu вне форума
Прохожий
 
Регистрация: 04.04.2009
Сообщения: 7
Репутация: 10
По умолчанию SQL запросы (для начинающих)

В общем, чтобы не создавать каждый раз новую тему открыл тему про SQL запросы.
1)
При создании БД застрял на автоинкрементах.
таблица: dBase IV, поля: id, name (number и character)
требуется: увеличение значения id при вводе name и отображение внесенной записи.
в приложении организован диалог через Edit ("Введите имя") и Button ("ОК").
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.close;
Query1.SQL.Clear;
Query1.sql.Text:=('ALTER TABLE tbl.dbf MODIFY id not null auto_increment=#');
Query1.ExecSQL;
Query1.SQL.Clear;
Query1.SQL.Text:=('insert into tbl.dbf values(id,"'+edit1.text+'")');
Query1.ExecSQL;
Query1.SQL.Clear;
Query1.SQL.Text:=('select * from tbl.dbf');
Query1.open;
end;
2) как организовать запрос на запрет ввода одинакового имени???
то есть, если в таблице имеется запись name1, то при вводе в edit`e имени name1 сообщало об ошибке???
как на счет такого пути: записываем в переменную val1 значение Edit1 и затем сравниваем с записью в таблице:
Код:
procedure TForm_edit_mag.Edit1KeyPress(Sender: TObject; var Key: Char);
var val1:string;
begin
{repeat val1:=edit1.text
until Edit1KeyPress('');} //не то :)
val1:=edit1.text;
query1.close;
query1.sql.clear;
query1.sql.text:=('<??????>');{вот тут хз пока не разобрался, с помощью чего сравнивать???}
query1.execsql;
end;

Admin: Пользуемся тегами!
Ответить с цитированием