![]() |
|
![]() ![]() ![]() |
|
Zigmyndshtein |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
подскажите пожалуйста как мне передать данные с формы в БД
я использую компонент Query, в его свойстве SQL содержится такая строка "select *from <table>", это строка мне нужна для операции с полями базы. как нме при таком раскладе собрать данные из компонентов Edit на фотме и записать их в базу. я пробовал query->FildByName("имя поля")->Value=Edit->Text; но ничего не вышло, вывалилась ошибка |
|||
|
||||
Rodman |
|
|||
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 7 Всего: 122 |
используй не SELECT, а INSERT!
|
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
не понимаю в чем у Вас проблема? вот так не подходит?
писал прям тут, но ошибок вроде нет ![]() Это сообщение отредактировал(а) Dmi3ev - 29.5.2008, 21:41 -------------------- |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Zigmyndshtein |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
этот код вешать на кнопку? если так то я уже пробовал этот вариант! ругается... на "плюсы" ругатеся и говорит, что запись не может быть добавлена. може как то нужно открыть базу или ещё чего? |
||||
|
|||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
На кнопку добавления данных. Какие плюсы? Что именно пишет в ошибке? Открыть - не открыть, но подключиться к ней определённо не мешало бы! ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Zigmyndshtein |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
Данкинг,
база подключна через Query. а зачем прописывать в самом начале запроса Query->Close(); а ругается на те плюсы которые перед и после Edit-ов стоят Добавлено через 4 минуты и 56 секунд я впринципе понимаю что сдесь ничего нет сложного, но может я где-то что-то упустил? |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
А сам Query куда подключён? Чтобы закрыть запрос, а затем обязательно надо очистить его SQL-данные (что мы и видим в примере). Так какая именно ошибка? Попробуй через параметры (в синтаксисе Билдера могу ошибиться):
Это сообщение отредактировал(а) Данкинг - 30.5.2008, 01:12 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Данкинг |
|
||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Ну понятно, я с Дельфи переделывал. Сейчас исправлю. -------------------- There's nothing left but silent epitaphs. |
||||
|
|||||
Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
Данкинг, на счет execsql ты прав, это же не запрос на выборку
![]() Zigmyndshtein, я немного неправильно написал, чтобы работало, надо так:
добавились кавычки одинарные перед и после Edit-ов, заметил? это чтобы он понимал, что мы добавляем свой текст, а не имя поля. если будешь добавлять число, то не надо их ставить, и так понятно, что это не имя поля. если бы у нас были числовые поля, а не текстовые, мы бы так написали:
эти примеры я проверил, работают. -------------------- |
||||
|
|||||
Zigmyndshtein |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
попробовал я этот код:
Query1->Close(); Query1->SQL->Clear(); Query1->SQL->Add("INSERT INTO Obchii_jyrnal (Num_zajavki) VALUES ( "+StrToInt(Edit1->Text)+")"); Query1->ExecSQL(); выпала ошибка ещё при компидяции: [C++ Ioeaea] Unit3.cpp(32): E2085 Invalid pointer addition со следующим вариантом кода: Query1->Close(); Query1->SQL->Clear(); Query1->SQL->Add("INSERT INTO Obchii_jyrnal (Num_zajavki, Dataa) VALUES ( '"+Edit1->Text+"', '"+Edit2->Text+"')"); Query1->ExecSQL(); вроде всё нормально, он красиво комплицца и прога запускается, но при нажатии на кнопку занесения данных в дазу на которой висит код вываливается сообщение: Prolect Project2.exe raised exception class EDBEngineError with message 'Fild value required.'. Process stoeppd. Use Step or Run to continue |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
разберитесь с типами полей, из за этого у вас все проблемы.
давайте подробнее: 1. какая бд(paradox, dbase, ... )? 2. имена полей и типы? 3. куда и чего вставить? а то приходится догадываться, что там у вас. -------------------- |
|||
|
||||
TaNK |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
Dataa - какого типа Date или varchar? Это сообщение отредактировал(а) TaNK - 30.5.2008, 12:35 -------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
||||
|
|||||
Zigmyndshtein |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
Dmi3ev,
БД paradox поле(Num_Zajavriki) тип Number(N) поле(Dataa) тип Date(D) и есть поле Naimenovanie тип Alpha(A) и нужно из Edit-тов на форме собрать данные записать в БД |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
этот код работает 100 процентов, только что компилировал:
поля F1-N F2-A-50 F3-D вводи число, например 1 в эдит1, строку в эдит2, а дату в формате дд.мм.гггг в эдит3!!! точно работает))) -------------------- |
|||
|
||||
Zigmyndshtein |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
Dmi3ev,
я попробовал этот код в отдельном проекте, он действительно работает, а в моём проекте не хочет, вываливается сообщение об ошибке: Prolect Project2.exe raised exception class EDBEngineError with message 'Fild value required.'. Process stopped. Use Step or Run to continue может ли вываливаться ошибка если запрос на запись данных в БД производится на второй форме, а на перво форме используется таже БД и таже таблица для просмотра |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
может, но тогда должно появляться сообщение о том, что таблица занята (хотя у парадокса бываю загоны, проверь), а здесь мы видим, что ошибка в том, что значение поля обязательно!!! надо просто внимательно посмотреть: 1. сколько значений ты вставляешь и сколько полей (равно ли это число) 2. убрать свойство required у полей 3. типы полей и того, что ты вставляешь если ничего не получится, выкладывай проект, просто так будет проще и быстрее, кто-нибудь да поможет, а представлять как у Вас там и чего гораздо труднее))) -------------------- |
|||
|
||||
Zigmyndshtein |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
Dmi3ev,
нашел в чем была проблемма. я добавлял всего одну запись в базу, а обязательных для заполнения стояло 2 поля!!! спасибо за помощь!!! ![]() ещё один вопросик мелочный как после закрытия одной формы обновить данные в той фотме которая отбражает содержимое базы (после закрытия формы заполнения форма отображения становится активной) |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
В общем и целом - переподключиться к БД. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
если там, допустим, данные хранятся в Table, то тогда надо написать:
ваще есть еще рефреши всякие, но так точно можно))) -------------------- |
|||
|
||||
Zigmyndshtein |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
Dmi3ev, у мня правдо вместо тайбл используется query, ну а куда новесить лучше эту процедуру, если по закрытию одной формы должна обновиться вторая
|
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Тогда заново выбрать данные в запрос... ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Xolodna |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 18.5.2008 Репутация: нет Всего: нет |
Ребят, у меня практически такая же проблема. При попытке добавления новой записи в таблицу, билдер выдает ошибку "Ошибка синтаксиса в инструкции INSERT INTO". Перепробовала уже всё, что знала - никак не хочет добавлять:( Может, вы хоть чем поможете. Вот код:
AnsiString id_opr = DBEdit1->Text; AnsiString id_answ = DBLookupComboBox4->KeyValue; AnsiString date = MaskEdit1->Text; ADOQuery2->Close(); ADOQuery2->SQL->Clear(); ADOQuery2->SQL->Add("INSERT INTO Rezults (id_opr, id_answ, date) VALUES ('"+id_opr+"','"+id_answ+"','"+date+"');"); ADOQuery2->ExecSQL(); |
|||
|
||||
gather |
|
|||
![]() Rescue Officer ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 13.6.2007 Где: Russia, Lipetsk Репутация: нет Всего: 4 |
Запрос, который пытается выполнить - в студию (точнее сказать сюда) давайте
|
|||
|
||||
Xolodna |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 18.5.2008 Репутация: нет Всего: нет |
Эээм... да я вроде как его написала в сообщении....
|
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 1 Всего: 36 |
||||
|
||||
Xolodna |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 18.5.2008 Репутация: нет Всего: нет |
Поюзаю, конечно, на всякий случай, но дело в том, что один запрос на добавление подобного вида уже есть, и он работает, и не ругается ни на что. Там такая же дата, такого же формата. Поэтому я, мягко говоря, в недоумении:( |
|||
|
||||
gather |
|
|||
![]() Rescue Officer ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 13.6.2007 Где: Russia, Lipetsk Репутация: нет Всего: 4 |
||||
|
||||
Xolodna |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 18.5.2008 Репутация: нет Всего: нет |
Всем огромное спасибо! Ошибку нашла и она действительно была связана с полем даты, как и сказал Rififi.
Вот исправленная строка: ADOQuery2->SQL->Add("INSERT INTO Rezults (id_opr, id_answ, [date]) VALUES ("+id_opr+","+id_answ+",'"+date+"');"); Просто не хватало скобочек квадратных ![]() |
|||
|
||||
Zigmyndshtein |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
спасибо огромное всем за помощь
|
|||
|
||||
blackDancer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 23.1.2009 Где: Тамбов Репутация: нет Всего: нет |
Посмотри здесь http://forum.vingrad.ru/forum/topic-245869...y1775201/0.html в самом конце темы может то? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |