Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.09.2010, 11:16
atemic1 atemic1 вне форума
Прохожий
 
Регистрация: 24.09.2010
Сообщения: 10
Репутация: 10
По умолчанию Добавление позиции в бд через клинта

Добрый день!
Подскажите, пожалуйста, как поправить код. Премного благодарен!
Код:
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Text:='INSERT INTO Сотрудники VALUES+(:[№ Сотрудника],:Фио,:Оклад,:ДР)';
ADOquery2.Parameters.ParamByName('[№ Сотрудника]').Value:=edit2.text;
ADOquery2.Parameters.ParamByName('Фио').Value:=edit3.text;
ADOquery2.Parameters.ParamByName('Оклад').Value:=edit4.text;
ADOquery2.Parameters.ParamByName('ДР').Value:=edit5.text;
ADOquery2.ExecSQL;
Admin: Пользуемся тегами!

Выдает ошибку:
ADOQuery2: Parameter '[№ Сотрудника]' not found

Последний раз редактировалось Admin, 24.09.2010 в 11:19.
Ответить с цитированием
  #2  
Старый 24.09.2010, 11:54
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Переписать несколько:
Код:
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Text:='INSERT INTO Сотрудники VALUES(:№_Сотрудника,:Фио,:Оклад,:ДР)';
ADOquery2.Parameters.ParamByName('№_Сотрудника').Value:=edit2.text;
ADOquery2.Parameters.ParamByName('Фио').Value:=edit3.text;
ADOquery2.Parameters.ParamByName('Оклад').Value:=edit4.text;
ADOquery2.Parameters.ParamByName('ДР').Value:=edit5.text;
ADOquery2.ExecSQL;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 24.09.2010, 12:05
atemic1 atemic1 вне форума
Прохожий
 
Регистрация: 24.09.2010
Сообщения: 10
Репутация: 10
По умолчанию

Удаление скобок квадратных не решило проблему. Ошибка осталась та же(!
Ответить с цитированием
  #4  
Старый 24.09.2010, 12:39
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

обрати внимание что кроме квадратных скобок еще и добавилось "нижнее подчеркивание": №_Сотрудника
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #5  
Старый 24.09.2010, 12:56
atemic1 atemic1 вне форума
Прохожий
 
Регистрация: 24.09.2010
Сообщения: 10
Репутация: 10
По умолчанию

Не заметил, извините!
Теперь выскакивает другая ошибка:
'Приложение исп для текущей операции значение неверного типа'

Значения которые я вношу: (тип данный в MSQL)
№ Сотрудника 22 (Nvarchar (50))
Фио Пупки А.А (Nvarchar (50))
Оклад 20000 (Nchar (10))
ДР NULL (Datetime)

Может в коде нужно где-то указывать тип данных??
Ответить с цитированием
  #6  
Старый 24.09.2010, 13:36
atemic1 atemic1 вне форума
Прохожий
 
Регистрация: 24.09.2010
Сообщения: 10
Репутация: 10
По умолчанию

Разобрался!
Вместо NULL ввел 1983-01-01 ошибки нет, все добавляется!
Не понятно почему нельзя пустое значение вносить, в sql стоит разрешающая галочка.
Всем спасибо за помощь!!!
Ответить с цитированием
  #7  
Старый 24.09.2010, 14:47
atemic1 atemic1 вне форума
Прохожий
 
Регистрация: 24.09.2010
Сообщения: 10
Репутация: 10
По умолчанию

А не подскажите как сделать удаление из БД через форму?
Ответить с цитированием
  #8  
Старый 24.09.2010, 14:54
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

например:
Код:
Table1.Delete;
или
Код:
Query1.Close;
Query1.SQL.Text:='DELETE FROM MyTable WHERE ID = :id';
Query1.ParamByName('id').Value:=Table1.FieldByName('id').Value;
Query1.ExecSQL;
Table1.Refresh;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #9  
Старый 24.09.2010, 18:15
atemic1 atemic1 вне форума
Прохожий
 
Регистрация: 24.09.2010
Сообщения: 10
Репутация: 10
По умолчанию

Если таким образом, то выдает ошибку. Что тут нужно исправить?
Код:
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Text:='Delete From Сотрудники Where №_Сотрудника =: edit2.text';
ADOquery2.Parameters.ParamByName('№_Сотрудника').Value:=edit2.text;
ADOquery2.ExecSQL;
Ответить с цитированием
  #10  
Старый 24.09.2010, 18:29
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

какую ошибку? на какой строке?
Ответить с цитированием
  #11  
Старый 24.09.2010, 18:44
atemic1 atemic1 вне форума
Прохожий
 
Регистрация: 24.09.2010
Сообщения: 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
какую ошибку? на какой строке?

ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Text:='Delete From №_Сотрудника Where №_Сотрудника =: '''+edit2.text+'''';
ADOquery2.Parameters.ParamByName('№_Сотрудника').V alue:=edit2.text;
ADOquery2.ExecSQL;

ошибка- Parameter '№_Сотрудника' not found
Ответить с цитированием
  #12  
Старый 24.09.2010, 19:30
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Позвольте, а почему у вас первоначальное поле с именем [№ Сотрудника] стало вдруг №_Сотрудника? Я вам давал вариант для параметров, а это несколько другое. Далее, с чего вдруг таблица Сотрудники резко сменила имя на №_Сотрудника?
И наконец, после двоеточия в имени параметра пробела быть не должно, я так думаю!
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #13  
Старый 24.09.2010, 19:57
atemic1 atemic1 вне форума
Прохожий
 
Регистрация: 24.09.2010
Сообщения: 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Позвольте, а почему у вас первоначальное поле с именем [№ Сотрудника] стало вдруг №_Сотрудника? Я вам давал вариант для параметров, а это несколько другое. Далее, с чего вдруг таблица Сотрудники резко сменила имя на №_Сотрудника?
И наконец, после двоеточия в имени параметра пробела быть не должно, я так думаю!

ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Text:='Delete From Сотрудники Where [№Сотрудника] =:'''+edit2.text+'''';
ADOquery2.Parameters.ParamByName('№_Сотрудника').V alue:=edit2.text;
ADOquery2.ExecSQL;
Cпасибо что указали на мои ошибки, исправил, но ошибка та же осталась, наставьте на путь истинный, плз.
Ответить с цитированием
  #14  
Старый 24.09.2010, 20:02
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Код:
ADOQuery2.SQL.Text:='Delete From Сотрудники Where [№Сотрудника] =:'''+edit2.text+'''';
Ничего не смущает?
Вот так попробуйте:
Код:
ADOQuery2.SQL.Text:='Delete From Сотрудники Where [№Сотрудника] =:№_Сотрудника';
У меня подозрение, что так оно как-то правильнее
ПС: У вас в таблице поле [№Сотрудника] теперь без пробела?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 24.09.2010 в 20:05.
Ответить с цитированием
  #15  
Старый 24.09.2010, 20:15
atemic1 atemic1 вне форума
Прохожий
 
Регистрация: 24.09.2010
Сообщения: 10
Репутация: 10
По умолчанию

Всё работает, спасибо огромное))!!!!
Может еще подскажете как сделать чтобы после удаления значения, поле DBGrid обновлялось, а то приходится вручную)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:48.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter