Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
mojohead
2 / 2 / 0
Регистрация: 15.05.2011
Сообщений: 89
1

внесение данных в таблицу

31.05.2011, 01:36. Просмотров 1580. Ответов 16
Метки нет (Все метки)

необходимо ввести данные в таблицу...немогу внести выдаёт ошибку Parametr in_number not found вот код
Код
IBStoredProc1->Params->ParamByName("in_number")->Value =Edit1->Text;
IBStoredProc1->Params->ParamByName("in_date")->Value =DateTimePicker1->Date;
IBStoredProc1->Params->ParamByName("send_date")->Value =DateTimePicker2->Date;
IBStoredProc1->Params->ParamByName("send_number")->Value =Edit2->Text;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2011, 01:36
Ответы с готовыми решениями:

Внесение данных из email в БД
Привет всем. Для курсовой я должен написать прогу, позволяющую считывать и...

Добавление данных в таблицу
Всем доброго времени суток. На данном форуме впервые, поэтому попрошу сразу...

Добавление данных в таблицу
как зделать так чтоби можна било добавлять дание в таблицю access??????

Добавление данных в таблицу БД Access
Народ, всем доброго дня! Я нубяра :-) Но начинаю пытаться осваивать Borland...

Отмена добавления данных в таблицу
Здравствуйте, подскажите пожалуйста как мне отменить добавление данных в...

16
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,482
Записей в блоге: 3
31.05.2011, 09:25 2
А так?
C++
1
 IBStoredProc1->Params->ParamByName("in_number")->Value = StrToInt(Edit1->Text);
Добавлено через 3 минуты
Ты какими нибудь методами пользуешься при добавлении данных в таблицу
0
mojohead
2 / 2 / 0
Регистрация: 15.05.2011
Сообщений: 89
31.05.2011, 10:29  [ТС] 3
Нет методы не использую...просто я делаю так как раньше но вот с interbase неполучается добавить, а в оракле таким способом добавлял и все нормально было, я попробовал StrToInt все таже ошибка(( оно невидит записи в Едите чтоли непойму
0
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,482
Записей в блоге: 3
31.05.2011, 10:39 4
Цитата Сообщение от mojohead Посмотреть сообщение
Parametr in_number not found
Он параметр не может найти
1
mojohead
2 / 2 / 0
Регистрация: 15.05.2011
Сообщений: 89
31.05.2011, 11:03  [ТС] 5
Тоесть он невидит поля таблицы?
0
MsGuns
537 / 537 / 57
Регистрация: 04.04.2011
Сообщений: 2,002
31.05.2011, 11:21 6
В хранимке, которую Вы пытаетесь выполнить, нет параметра с именем "in_number"

Добавлено через 2 минуты
Вы в дизайне определили параметры для ХП ?
Если да, то, возможно, кто-то изменил тело хранимки.

Короче, ИБ тут вряд ли причем. Скорее Вы не учли особенности библиотеки IBX - читайте справку внимательнее

Добавлено через 10 минут
Давно работал с ИБ, не помню, но мне кажется там вроде бы небыло метода извлечения списка параметров с сервера, по аналогии с адошным Parameters->Refresh(). Поэтому все ручками и при изменении тела ХП (в части параметров) надо лезть править код.
Или я неправ ?
1
mojohead
2 / 2 / 0
Регистрация: 15.05.2011
Сообщений: 89
31.05.2011, 11:23  [ТС] 7
попробовал сделать подругому
Код
IBQuery1->SQL->Clear();
IBQuery1->SQL->Add("insert into in_doc values("+Edit1->Text+",'"+DateTimePicker1->Date+"','"+ComboBox1->Text+"',"+ComboBox2->Text+","+DateTimePicker2->Date+","+Edit2->Text+","+Edit3->Text+","+DateTimePicker3->Date+","+ComboBox2->Text+","+Memo1->Text+","+Memo2->Text+");");
IBQuery1->Open();
но теперь ругается на 67 символ думаю что неправильно записал внесение даты...пишет SQL Error code=-104..Token unknown -line1, char 67
0
MsGuns
537 / 537 / 57
Регистрация: 04.04.2011
Сообщений: 2,002
31.05.2011, 11:40 8
Правильный формат INSERT:
Insert into Table (FieldName1,FieldName2,...FieldNameN)
Values (Val1,Val2,...ValN)

Добавлено через 6 минут
Вы неверно пытаетесь подставить даты. TDateTimePicker.Date возвращает тип TDateTime, а Вы его пихаете как строчку

И еще:
используйте параметризированные запросы, особенно если подставляете даты (в ИБ Вас ждут интересные "полтергейсты" при выборках по интервалам, если Вы конечно, не будете грамотно готовить и подставлять параметры).
1
mojohead
2 / 2 / 0
Регистрация: 15.05.2011
Сообщений: 89
31.05.2011, 14:35  [ТС] 9
я то в принцыпе знаю какой правильный формат инзерта но в билдере мне как правильно подать незнаю...немогли бы вы примерчик какойнить написать для ввода данных...как именно подать дату незнаю
0
MsGuns
537 / 537 / 57
Регистрация: 04.04.2011
Сообщений: 2,002
31.05.2011, 18:32 10
Собственно какая разница в билдере или каком-нибудь эксперте. Текст запроса просто переносится в св-во SQL компонента. И все.
Ваш запрос я не могу переделать т.к. не знаю имен полей таблицы.
1
mojohead
2 / 2 / 0
Регистрация: 15.05.2011
Сообщений: 89
01.06.2011, 00:08  [ТС] 11
вот такие поля таблицы
Код
TABLE "IN_DOC" 
(
  "IN_NUMBER"	VARCHAR(20) CHARACTER SET WIN1251 NOT NULL,
  "IN_DATE"	DATE NOT NULL,
  "IN_TYPE"	VARCHAR(100) CHARACTER SET WIN1251,
  "SENDER_NAME"	VARCHAR(100) CHARACTER SET WIN1251,
  "SEND_DATE"	DATE NOT NULL,
  "SEND_NUMBER"	VARCHAR(20) CHARACTER SET WIN1251 NOT NULL,
  "FILENAME"	VARCHAR(100) CHARACTER SET WIN1251,
  "FOLDER"	VARCHAR(100) CHARACTER SET WIN1251,
  "REGISTER_DATE"	DATE,
  "CONTENT"	VARCHAR(2000) CHARACTER SET WIN1251,
  "CRIPT"	VARCHAR(1000) CHARACTER SET WIN1251,
 PRIMARY KEY ("IN_NUMBER")
);
Добавлено через 3 часа 52 минуты
пробую уже без тайм пикера просто в едит но как правильно внести дату незнаю...уже задолбался...вот код
Код
IBQuery1->Close();
IBQuery1->SQL->Clear();
IBQuery1->SQL->Add("INSERT INTO in_doc (IN_NUMBER, IN_DATE, IN_TYPE, SENDER_NAME, SEND_DATE, SEND_NUMBER, FILENAME, FOLDER, REGISTER_DATE, CONTENT, CRIPT)");
IBQuery1->SQL->Add("VALUES (:Param1, :Param2, :Param3, :Param4, :Param5, :Param6, :Param7, :Param8, :Param9, :Param10, :Param11)");
IBQuery1->Params->ParamByName("Param1")->Value ="'"+Edit1->Text+"'";
IBQuery1->Params->ParamByName("Param2")->Value ="'"+Edit4->Text+"'";
IBQuery1->Params->ParamByName("Param3")->Value ="'"+ComboBox1->Text+"'";
IBQuery1->Params->ParamByName("Param4")->Value ="'"+ComboBox2->Text+"'";
IBQuery1->Params->ParamByName("Param5")->Value ="'"+Edit5->Text+"'";
IBQuery1->Params->ParamByName("Param6")->Value ="'"+Edit2->Text+"'";
IBQuery1->Params->ParamByName("Param7")->Value ="'"+Edit3->Text+"'";
IBQuery1->Params->ParamByName("Param8")->Value ="'"+ComboBox3->Text+"'";
IBQuery1->Params->ParamByName("Param9")->Value ="'"+Edit6->Text+"'";
IBQuery1->Params->ParamByName("Param10")->Value ="'"+Memo1->Text+"'";
IBQuery1->Params->ParamByName("Param11")->Value ="'"+Memo2->Text+"'";
//IBQuery1->SQL->Add("select * from in_doc;");
IBQuery1->Open();
0
MsGuns
537 / 537 / 57
Регистрация: 04.04.2011
Сообщений: 2,002
01.06.2011, 09:53 12
Для типов "дата" и пишите в параметр саму дату:

IBQuery1->Params->ParamByName("Param2")->Value = DateTimePicker1.Date;
IBQuery1->Params->ParamByName("Param5")->Value = DateTimePicker2.Date;
...
1
mojohead
2 / 2 / 0
Регистрация: 15.05.2011
Сообщений: 89
01.06.2011, 13:22  [ТС] 13
вот такую ошибку выдаёт
0
Миниатюры
внесение данных в таблицу  
mojohead
2 / 2 / 0
Регистрация: 15.05.2011
Сообщений: 89
01.06.2011, 13:29  [ТС] 14
сделал так
IBQuery1->Params->ParamByName("Param2")->Value ="'"+DateTimePicker1->Date+"'";
выдаёт такую ошибку
как сделать формат даты только для дня месяца и года без времени?
и вообще судя по ошибке оно не считает введённое в DateTimePicker1 датой :-(
0
Миниатюры
внесение данных в таблицу  
MsGuns
537 / 537 / 57
Регистрация: 04.04.2011
Сообщений: 2,002
01.06.2011, 15:58 15
Вы игнорируете правильные советы (12) и продолжаете "лепить горбатого" в запрос.
А когда получаете отлуп, то начинаете пенять на ни в чем не винный датапикер
1
mojohead
2 / 2 / 0
Регистрация: 15.05.2011
Сообщений: 89
01.06.2011, 17:45  [ТС] 16
Цитата Сообщение от MsGuns Посмотреть сообщение
Для типов "дата" и пишите в параметр саму дату:

IBQuery1->Params->ParamByName("Param2")->Value = DateTimePicker1.Date;
IBQuery1->Params->ParamByName("Param5")->Value = DateTimePicker2.Date;
...
я пробовал так как Вы посоветовали но всёравно выдаёт ошибку которую я привёл первой
0
MsGuns
537 / 537 / 57
Регистрация: 04.04.2011
Сообщений: 2,002
02.06.2011, 09:41 17
IBQuery1->Params->ParamByName("Param2")->AsDateTime = DateTimePicker1.Date;
IBQuery1->Params->ParamByName("Param5")->AsDateTime = DateTimePicker2.Date;
...
и так для всех дат. Приведите польностью фрагмент кода подготовки и запуска запроса
1
02.06.2011, 09:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2011, 09:41

Как менять таблицу в базе данных
Привет всем. У меня такая проблема есть база данных в нем есть несколько...

Занесени данных в таблицу через DBLookupListBox
Здравствуйте! Пытаюсь реализовать занесение данных из одной таблицы в другую...

Ввод данных футбольного матча в таблицу
помогите люди добрые! Я создал на форме два комбобокса с названиями футбольных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru