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

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

Вернуться   Форум программистов > C/C++ программирование > C/C++ Базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2011, 22:03   #1
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию Вставка информации в базу данных

Пишу следующие команды для вставки:
Для вставки пользуюсь параметрам в SQL запросе

Код:
        AnsiString Query[4];

        Query[0] = "INSERT INTO detal";
        Query[1] = "VALUES";
        Query[2] = "(:cod,:cat,:title,:gurt,:kilk,:spec)";
        Query[3] = Query[0] + Query[1] + " " + Query[2];

        Data->Query1->Close();
        Data->Query1->SQL->Clear();
        Data->Query1->SQL->Add(Query[3]);

        Data->Query1->ParamByName("cod")->AsInteger = StrToInt(LabeledEdit1->Text);
        Data->Query1->ParamByName("cat")->AsInteger = StrToInt(Edit1->Text);
        Data->Query1->ParamByName("title")->AsString = LabeledEdit3->Text;
        Data->Query1->ParamByName("gurt")->AsFloat = StrToFloat(LabeledEdit4->Text);
        Data->Query1->ParamByName("kilk")->AsInteger = StrToInt(LabeledEdit5->Text);
        Data->Query1->ParamByName("spec")->AsString = LabeledEdit6->Text;
        Data->Query1->Open();
В результате выскакивает следующее


C++ Builder

Последний раз редактировалось Anubys; 04.11.2011 в 22:08.
Anubys вне форума Ответить с цитированием
Старый 05.11.2011, 12:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Query[3] = Query[0] + Query[1] + " " + Query[2];
Даст
Код:
INSERT INTO detalVALUES (:cod,:cat,:title,:gurt,:kilk,:spec)
Увидел, где пробела не хватает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.11.2011, 12:11   #3
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию

сейчас попробую

Теперь выдает такое при выполнении вставки

Type mismatch in expression

Последний раз редактировалось Anubys; 05.11.2011 в 12:40.
Anubys вне форума Ответить с цитированием
Старый 05.11.2011, 17:25   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

"несоответствие типов в выражении"
psycho-coder вне форума Ответить с цитированием
Старый 05.11.2011, 17:57   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
StrToFloat
А там запятая как разделитель целой и дробной части?
Поставь перед запросом DecimalSeparator=".";
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2011, 15:22   #6
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
"несоответствие типов в выражении"
Как переводится я и так знаю)))

Написал вот так и тот же эффект:

Код:
AnsiString Query [4];

         Query [0] = "INSERT INTO detal";
         Query [1] = "VALUES";
         Query [2] = "(:cod,:ca,:title,:gurt,:kilk,:spec)";
         Query [3] = Query [0] + "" + Query [1] + "" + Query [2];

         Data-> Query1-> Close ();
         Data-> Query1-> SQL-> Clear ();
         DecimalSeparator = '.';
         Data-> Query1-> SQL-> Add (Query [3]);

         Data-> Query1-> ParamByName ("cod") -> AsInteger = StrToInt (LabeledEdit1-> Text);
         Data-> Query1-> ParamByName ("ca") -> AsInteger = StrToInt (Edit1-> Text);
         Data-> Query1-> ParamByName ("title") -> AsString = LabeledEdit3-> Text;
         Data-> Query1-> ParamByName ("gurt") -> AsFloat = StrToFloat (LabeledEdit4-> Text);
         Data-> Query1-> ParamByName ("kilk") -> AsInteger = StrToInt (LabeledEdit5-> Text);
         Data-> Query1-> ParamByName ("spec") -> AsString = LabeledEdit6-> Text;
         Data-> Query1-> ExecSQL ();

Написал вот такой запрос, начал материться на ","

Код:
INSERT INTO detal
VALUES
(CAST(:cod AS Integer), CAST(:ca AS Integer), CAST(:title AS VARCHAR(80)), CAST(:gurt AS DECIMAL(5,2), CAST(:kilk AS Integer), CAST(:spec AS VARCHAR(30))
СУБД Paradox 7
Мои варианты исчерпались надеюсь на вашу помощь

Последний раз редактировалось Anubys; 06.11.2011 в 18:18.
Anubys вне форума Ответить с цитированием
Старый 07.11.2011, 14:19   #7
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Как переводится я и так знаю)))
Так это же замечательно!)
Цитата:
Написал вот такой запрос, начал материться на ","
На какую именно или когда? Пройдись трассировкой, посмотри какие данные попадают в запрос.
psycho-coder вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление информации DBGrida в базу Access E-Novikov БД в Delphi 1 17.10.2011 01:11
Импорт в базу данных. Kasper1 PHP 6 22.02.2011 20:09
разработать базу данных для автоматизации учетной информации склада Student_17 Фриланс 6 27.11.2010 14:10
написать Базу Данных Alesa90 Фриланс 5 27.06.2010 18:31
Создать базу данных west23 Microsoft Office Access 2 11.02.2010 21:20