![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() В общем, чтобы не создавать каждый раз новую тему открыл тему про 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; то есть, если в таблице имеется запись 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: Пользуемся тегами! Последний раз редактировалось civicuu, 08.04.2009 в 15:07. |