|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Добавление позиции в бд через клинта
Добрый день!
Подскажите, пожалуйста, как поправить код. Премного благодарен! Код:
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; Выдает ошибку: ADOQuery2: Parameter '[№ Сотрудника]' not found Последний раз редактировалось Admin, 24.09.2010 в 11:19. |
#2
|
||||
|
||||
Переписать несколько:
Код:
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
|
|||
|
|||
Удаление скобок квадратных не решило проблему. Ошибка осталась та же(!
|
#4
|
||||
|
||||
обрати внимание что кроме квадратных скобок еще и добавилось "нижнее подчеркивание": №_Сотрудника
Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#5
|
|||
|
|||
Не заметил, извините!
Теперь выскакивает другая ошибка: 'Приложение исп для текущей операции значение неверного типа' Значения которые я вношу: (тип данный в MSQL) № Сотрудника 22 (Nvarchar (50)) Фио Пупки А.А (Nvarchar (50)) Оклад 20000 (Nchar (10)) ДР NULL (Datetime) Может в коде нужно где-то указывать тип данных?? |
#6
|
|||
|
|||
Разобрался!
Вместо NULL ввел 1983-01-01 ошибки нет, все добавляется! Не понятно почему нельзя пустое значение вносить, в sql стоит разрешающая галочка. Всем спасибо за помощь!!! |
#7
|
|||
|
|||
А не подскажите как сделать удаление из БД через форму?
|
#8
|
||||
|
||||
например:
Код:
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
|
|||
|
|||
Если таким образом, то выдает ошибку. Что тут нужно исправить?
Код:
ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Text:='Delete From Сотрудники Where №_Сотрудника =: edit2.text'; ADOquery2.Parameters.ParamByName('№_Сотрудника').Value:=edit2.text; ADOquery2.ExecSQL; |
#10
|
|||
|
|||
какую ошибку? на какой строке?
|
#11
|
|||
|
|||
Цитата:
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
|
||||
|
||||
Позвольте, а почему у вас первоначальное поле с именем [№ Сотрудника] стало вдруг №_Сотрудника? Я вам давал вариант для параметров, а это несколько другое. Далее, с чего вдруг таблица Сотрудники резко сменила имя на №_Сотрудника?
И наконец, после двоеточия в имени параметра пробела быть не должно, я так думаю! Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#13
|
|||
|
|||
Цитата:
ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Text:='Delete From Сотрудники Where [№Сотрудника] =:'''+edit2.text+''''; ADOquery2.Parameters.ParamByName('№_Сотрудника').V alue:=edit2.text; ADOquery2.ExecSQL; Cпасибо что указали на мои ошибки, исправил, но ошибка та же осталась, наставьте на путь истинный, плз. |
#14
|
||||
|
||||
Код:
ADOQuery2.SQL.Text:='Delete From Сотрудники Where [№Сотрудника] =:'''+edit2.text+''''; Вот так попробуйте: Код:
ADOQuery2.SQL.Text:='Delete From Сотрудники Where [№Сотрудника] =:№_Сотрудника'; ПС: У вас в таблице поле [№Сотрудника] теперь без пробела? Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 24.09.2010 в 20:05. |
#15
|
|||
|
|||
Всё работает, спасибо огромное))!!!!
Может еще подскажете как сделать чтобы после удаления значения, поле DBGrid обновлялось, а то приходится вручную) |