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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2009, 04:22   #1
xxxsas
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 79
Вопрос арод помогите с запросом на Insert в TQuery

Нужна помощь в формировании запроса на вставку в таблицу(pers) неких данных(temp) для некого пользователя (user)

Запрос выходит следущий:
Query1->SQL->Clear();
Query1->SQL->Text = "INSERT INTO dbo.pers (temp) VALUES (:temp) WHERE user = :user";
QueryEDP->Params->ParamByName("user")->Value = Label1->Caption;
QueryEDP->Params->ParamByName("temp")->Value = Label2->Caption;
QueryEDP->ExecSQL();
Однако при выполнении запроса выскакивает ошибка на неправильный синтаксис возле WHERE.
Если я чего-то не заметил, то в чем ошибка?
xxxsas вне форума Ответить с цитированием
Старый 07.01.2009, 14:37   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Да что ж вы одни и те же имена-то даете?
Ну назовите хотя бы первый параметр по-другому... Ну, например, "myuser". Голову ж сломать можно - куда ни плюнь, везде "user", и попробуй догадайся, то ли это имя поля, то ли это имя параметра, то ли еще что-нибудь другое...
У вас что - фантазии не хватает разные имена переменным присвоить?
mihali4 вне форума Ответить с цитированием
Старый 07.01.2009, 15:19   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

mihali4, +1

а ещё у меня вызывает сильные подозрения строчка:
INTO dbo.pers (temp) VALUES (:temp)
по двум причинам: 1) одинаковые имена у поля в таблице БД и у переменной.
2) в таблице dbo.pers точно есть поле TEMP ?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.01.2009, 16:27   #4
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

user = @user";[/B]
вот тут по ходу косяк a параметр не с собакой передается????
вступлю в команду разработчиков ПО на Delphi

Последний раз редактировалось maladoy; 07.01.2009 в 16:31. Причина: не доглядел!!!!
maladoy вне форума Ответить с цитированием
Старый 07.01.2009, 16:29   #5
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Цитата:
Сообщение от maladoy Посмотреть сообщение
user = :user";[/B]
вот тут по ходу косяк не
":=" a "="!!!!
а где вы увидели := ?
_Engine_ вне форума Ответить с цитированием
Старый 08.01.2009, 00:20   #6
xxxsas
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 79
По умолчанию

temp и user параметры - тут косяков не может быть
относительно слов михалыча- как не понять того, что в Values ":temp" означает некий параметр, который в дальнейшем определяет значение поля temp. Вообще параметры взяты произвольно- если не понятен запрос предыдущий напишу по-другом(может так будет понятней):
QueryEDP->SQL->Clear();
QueryEDP->SQL->Text = "INSERT INTO dbo.pers (pole) VALUES (ole_param) WHERE user = :user_param";
QueryEDP->Params->ParamByName("user_param")->Value = Label1->Caption;
QueryEDP->Params->ParamByName("pole_param")->Value = Label2->Caption;
QueryEDP->ExecSQL();


pole - поле в таблице куда нужно сделать insert значения pole_param;
pole_param - параметр, заданное значение которого нужно вставить в поле "pole" таблицы "dbo.pers" для конкретного пользователя, имя которого определяется значением параметра user_param;
user - поле в таблице "dbo.pers", в ктором содержатся имена пользователей.
user_param - параметр задает имя пользователя, для которого должна производиться вставка данных.

Последний раз редактировалось xxxsas; 08.01.2009 в 00:24.
xxxsas вне форума Ответить с цитированием
Старый 08.01.2009, 00:45   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
WHERE user
А есть в таблице dbo.pers такое поле - "user"?
И что за имя таблицы такое - dbo.pers ?
И наконец - какой диалект SQL пользуем, от какой СУБД?
mihali4 вне форума Ответить с цитированием
Старый 08.01.2009, 01:12   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

mihali4, я думаю, что всё, в конце концов, сведётся к тому, что на таблице висит какой-нибудь констрейн/форегн_кей/триггер, который не позволяет добавлять данные..
или, банально, в таблице есть primary key, который не заполняется, или поля NOT NULL....

хотя, Ваше желание разобраться в проблеме и помочь, безусловно, заслуживает уважения! респект!...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.01.2009, 01:39   #9
xxxsas
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 79
По умолчанию

dbo.pers - таблица MSSQL SERVER 2000
Думаю просто ошибочно добавлять WHERE в оператор INSERT - банальная ошибка...

Спасибо народ, что помогали разбираться.
xxxsas вне форума Ответить с цитированием
Старый 08.01.2009, 02:26   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Думаю просто ошибочно добавлять WHERE в оператор INSERT - банальная ошибка
Верно, черт побери! Что называется - глаз замылился...
mihali4 вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с запросом Viper666 Microsoft Office Access 2 14.05.2008 22:35
Помогите с запросом Айвенго Microsoft Office Access 3 08.05.2008 09:07
Помогите с запросом Blackmore БД в Delphi 3 07.05.2008 01:18
Insert в TQuery из библиотеки langerhed БД в Delphi 2 01.11.2007 08:10
помогите с запросом 9-11 БД в Delphi 4 20.11.2006 10:04