Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Insert INTO в ADOQuery, Не могу добавить intовское значение 
:(
    Опции темы
ColdDeath
Дата 31.10.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 3.8.2009

Репутация: нет
Всего: нет



Имеется следующий код:
Код
            UserID="Vasya";
            Pass="123";
            int Level=2;
            MainForm->ADOConnectionMain->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + MainDBPath + ";Jet OLEDB:Database Password=dfdfk3j343";
            MainForm->ADOQueryMain->Active = false;
            MainForm->ADOQueryMain->SQL->Clear();

            MainForm->ADOQueryMain->SQL->Add("\
                    INSERT INTO Initial(UserID, Pass, Level) VALUES( \
                            '" + UserID + "', \
                            '" + Pass + "', \
                            " + Level + "\
                    )"
            );
            MainForm->ADOQueryMain->ExecSQL();
            MainForm->ADOConnectionMain->Close();

При компиляции ругается что синтаксическая ошибка в запросе INTO.
Код вставляет в таблицу Initial базы данных Строку с полями UserID (текст), Pass (текст), Level (числовой).
Проблема во вставке Level. Если Level сделать AnsiString'ом, и изменить тип поля в БД на текстовый, то нормально работает. Но мне нужно именно число. В чём ошибка в запросе? Запрос генерирует строку:
INSERT INTO Initial(UserID, Pass, Level) VALUES('Vasya', '123', 2)
В чём ошибка? Помогите, пожалуйста.


Модератор: на забываем пользоваться кнопочкой "Код".

Это сообщение отредактировал(а) bsa - 2.11.2009, 11:41
PM MAIL   Вверх
Anikmar
Дата 31.10.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(ColdDeath @  31.10.2009,  17:24 Найти цитируемый пост)
При компиляции ругается что синтаксическая ошибка в запросе INTO.

Точно при компиляции? Покажите сообщение об ошибке.
PM MAIL ICQ   Вверх
Данкинг
Дата 31.10.2009, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Так правильно: переменная Level у тебя числовая, а ты её пытаешься вставить в строку (SQL->Add). Причём наряду с переменными UserID и Pass, которые как раз текстовые.

Добавлено через 1 минуту и 58 секунд
Цитата(ColdDeath @  31.10.2009,  17:24 Найти цитируемый пост)
Запрос генерирует строку:

Как генерирует: программа вообще компилироваться не должна. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Anikmar
Дата 31.10.2009, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(Данкинг @  31.10.2009,  20:41 Найти цитируемый пост)
Как генерирует: программа вообще компилироваться не должна.   

 Вполне может, если компилятор типа Билдера - то там может, у AnsiString куча всевозможных конструкторов, только вот за ними следить надо, однако...
PM MAIL ICQ   Вверх
Данкинг
Дата 31.10.2009, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(Anikmar @  31.10.2009,  20:47 Найти цитируемый пост)
Вполне может, если компилятор типа Билдера - то там может, у AnsiString куча всевозможных конструкторов, только вот за ними следить надо, однако... 

Тогда понятно, остаётся просто взять IntToStr(Level). smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
ColdDeath
Дата 6.11.2009, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 3.8.2009

Репутация: нет
Всего: нет



Компилятор - Билдер. Всем спасибо за посты, но проблема оказалась в следующем:

Код
  MainForm->ADOQueryMain->SQL->Add("\
                    INSERT INTO Initial(UserID, Pass, Level) VALUES( \
                            '" + UserID + "', \
                            '" + Pass + "', \
                            " + Level + "\
                    )"
            );



А надо было с кавычками такими ещё писать (`), вот так:
Код
  MainForm->ADOQueryMain->SQL->Add("\
                    INSERT INTO `Initial` (`UserID`, `Pass`, `Level`) VALUES( \
                            '" + UserID + "', \
                            '" + Pass + "', \
                            " + Level + "\
                    )"
            );


Всеравно всем спасибо! Тема ЗАКРЫТА!
PM MAIL   Вверх
A5uKa
Дата 7.11.2009, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 2
Всего: 16



Добавлю ещё мелочь
делая Add, ещё не нужно забывать про Clear() перед этим, так можно использовать ->Text=
Потом обычно используют не ' ' , а [ ] для полей, вот так

Код

" INSERT INTO [Твой сервер (как и dbo - это не обязательно, т.к. есть в ADOConnect)].[dbo].[Initial]  \
                         ([UserID]                                 \
                         ,[Pass]                                     \
                         ,[Level]                                    \ 
                VALUES                                             \
                        ('" + UserID + "'                \
                         ,'" + Pass + "'                   \
                         ," + String(Level) ;


Это сообщение отредактировал(а) A5uKa - 7.11.2009, 10:18
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0723 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.