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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2010, 19:17   #1
animalshadow
Пользователь
 
Аватар для animalshadow
 
Регистрация: 30.03.2009
Сообщений: 23
Радость Результат запроса sql в переменную(знаю, что похожие темы были)

C++ Builder 2010
Работаю с MySQL 5.x



Код:
	query_store->Lines->LoadFromFile("acc.dat");
	TADOQuery* ADOQuery;
	TParameter* Param;

	/* Create new query. */
	ADOQuery = new TADOQuery(this);
	ADOQuery->Connection = main_menu_form->Connection;
	ADOQuery->Active = false;
	ADOQuery->SQL->Clear();



ADOQuery->SQL->Add(query_store->Text);
//ADOQuery->SQL->Add(" SELECT * FROM medical_info WHERE doc_login="+(AnsiString)doc_login_sql+" ");

	//---------------------------------Declaration of parameters-----------//
ADOQuery->Parameters->ParamValues["doc_f_name"]=
VarArrayOf(OPENARRAY(Variant,(fname_doc->Text)));
   //---------------------------------End of declaration------------------------//

	try
	{
			ADOQuery->ExecSQL();

	}
	catch (EADOError *e)
	{
		MessageDlg("Error while connecting", mtError,
					  TMsgDlgButtons() << mbOK, 0);

	}
	fname_doc->Text =ADOQuery->FieldByName("doc_name_f")->AsString;
	ADOQuery->Active=false;

SQL запрос:
Код:
SELECT doc_name AS doc_name_f  FROM medical_info WHERE doc_name=:fname_doc
Выскакивает exception , что нет такого field, хотя если это запрос запустить в mysql , то всё работает и doc_name_f поле создаёться.


Заранее спасибо за помощь.

P.S.
doc_name в БД - text.
fname_doc - TEdit.
animalshadow вне форума Ответить с цитированием
Старый 30.05.2010, 20:01   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

не знаю билдеров, но ты же ввел псевдоним для своего столбца. вот и используй его дальше
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 30.05.2010, 23:49   #3
animalshadow
Пользователь
 
Аватар для animalshadow
 
Регистрация: 30.03.2009
Сообщений: 23
По умолчанию

Цитата:
не знаю билдеров, но ты же ввел псевдоним для своего столбца. вот и используй его дальше
Как-бы и использую, но

Цитата:
Выскакивает exception , что нет такого field, хотя если это запрос запустить в mysql , то всё работает и doc_name_f поле создаёться.
Код:
fname_doc->Text =ADOQuery->FieldByName("doc_name_f")->AsString;
animalshadow вне форума Ответить с цитированием
Старый 31.05.2010, 00:51   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2animalshadow
Код:
SELECT doc_name AS doc_name_f  FROM medical_info WHERE doc_name=:fname_doc
или я совсем sql не знаю
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 05.06.2010, 17:19   #5
animalshadow
Пользователь
 
Аватар для animalshadow
 
Регистрация: 30.03.2009
Сообщений: 23
Радость

Цитата:
Сообщение от pproger Посмотреть сообщение
2animalshadow
Код:
SELECT doc_name AS doc_name_f  FROM medical_info WHERE doc_name=:fname_doc
или я совсем sql не знаю
И где тут ошибка? Если вы про заменить doc_name в WHERE на doc_name_f, то логично, что ему негде искать, т.к. в данном случает нет столбца doc_name_f.


--------------------------------------------------------------------------
UPD:

Мда, ошибка ни в SQL-запросе, ни в БД...а в голове.

В общем для SELECT в ADO-компоненте я использовал, - ExecSQL(), а надо-было Active.

Т.е. надо было использовать Active=true:

Код:
	try
	{
			ADOQuery->Active=true;


	}
	catch (EADOError *e)
	{
		MessageDlg("Error while connecting", mtError,
					  TMsgDlgButtons() << mbOK, 0);

	}
P.S. pproger, спасибо что пытался разобраться с проблемой.

В общем обычная часто совершаемая ошибка.

Вопрос решён, тему можно закрывать.

Всем спасибо!

Последний раз редактировалось animalshadow; 05.06.2010 в 17:48.
animalshadow вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменая := результат запроса(SQL); ??? $T@LKER БД в Delphi 3 25.04.2010 11:43
Как записать в переменную delphi результат sql запроса? mar4elo БД в Delphi 1 03.12.2009 16:59
результат запроса в переменную..Как? Iber Общие вопросы .NET 1 01.11.2009 04:18
Cохранить результат запроса в переменную EugeneIsmatulin Общие вопросы Delphi 2 10.06.2009 13:48
Результат запроса sql в переменную dll32 БД в Delphi 9 26.05.2009 15:02