Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2016, 03:57   #1
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию не могу понять где мой косяк, что приложение виснит

помогите! Вот кусочек програмки, задача впихнуть из едита в базу данных при помощи SQL... при нажатии кнопочки с этим кусочком тупо зависает и все! .. Обьясните тугодуму как правильно записывать данные в таблицу!
Код:
DataModule2.ADOQuery1.Active:=False; //Закрываю основу, которая показывает таблицу
  DataModule2.ADOQuery4.Active:=False;
DataModule2.ADOQuery4.SQL.Clear;
DataModule2.ADOQuery4.SQL.Add('INSERT INTO Сотрудники(Фамилия) VALUES("'+edit1.Text+'")');// как понимаю записываю в табличку
DataModule2.ADOQuery4.ExecSQL;// сохраняю 
DataModule2.ADOQuery4.Active:=True;//открываю 
DataModule2.ADOQuery1.Active:=True;// показываю
SanekWK вне форума Ответить с цитированием
Старый 07.09.2016, 06:15   #2
dbalor
Форумчанин
 
Аватар для dbalor
 
Регистрация: 06.09.2016
Сообщений: 199
Сообщение

Вот так:
Код:
...
DataModule2.ADOQuery4.SQL.Clear;
DataModule2.ADOQuery4.SQL.Add('INSERT INTO Сотрудники(Фамилия) VALUES("'+edit1.Text+'")');
DataModule2.ADOQuery4.ExecSQL;
...
dbalor вне форума Ответить с цитированием
Старый 07.09.2016, 10:01   #3
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

ничего ж не поменялось...
Цитата:
Сообщение от dbalor Посмотреть сообщение
Вот так:
Код:
...
DataModule2.ADOQuery4.SQL.Clear;
DataModule2.ADOQuery4.SQL.Add('INSERT INTO Сотрудники(Фамилия) VALUES("'+edit1.Text+'")');
DataModule2.ADOQuery4.ExecSQL;
...
SanekWK вне форума Ответить с цитированием
Старый 07.09.2016, 10:25   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
ничего ж не поменялось...
Выкинули
Цитата:
Код:
DataModule2.ADOQuery4.Active:=True;//открываю 
DataModule2.ADOQuery1.Active:=True;// показываю
Нам НЕЧЕГО показывать при работе Insert.
Есть неписанное правило КАК не допускать ошибок
Для КАЖДОЙ операции с БД делать СВОЙ отдельный DataSet и НЕ МЕНЯТЬ без особой необходимости SQL запрос связанной с данной операцией.
"Тонкую" настройку (задание конкретных данных) запроса проводить с помощью параметров.

ADOQuery4 запрос показа таблицы
ADOQueryInsT запрос добавления данных
P.S. Еще одно правило: "говорящие" имена DataSet(Query)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу понять почему не работает мой пейджер Crabman PHP 16 06.08.2012 18:05
Не могу понять где ошибка. Демик Общие вопросы C/C++ 4 27.05.2011 13:31
не могу понять где ошибка Neon-z PHP 13 22.01.2011 16:15
Не могу понять, где ошибка( IROKEZ Общие вопросы C/C++ 4 16.12.2010 21:00