IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Передача параметра для IBQuery, C++ Builder6
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Здравствуйте!
Предположим, у меня есть компонент DBGrid2, куда будут выводятся результаты запроса компонента IBQuery2, но в тексте запроса присутствует параметр, в качестве которого хочу передавать значение поля, выделенного в другой DBGrid1....Так вот..а как прописать??


IBQuery2->Close();
//IBQuery2->Params->ParamByName("A")->AsString=DBGrid1-> а дальше не знаю...
IBQuery2->Open();



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Ну, если
Цитата
значение поля, выделенного в другой DBGrid1
, то
IBQuery2->Params->ParamByName("A")->AsString=DBGrid1->SelectedField->AsString;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(volvo @ 2.12.2008 0:17) *

IBQuery2->Params->ParamByName("A")->AsString=DBGrid1->SelectedField->AsString;


Ошибка...Скажите пожалуйста, как её можно устранить..?


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Не знаю... Ошибка возникает не при чтении из DBGrid1, а при работе с IBQuery скорее всего, потому что код
ShowMessage(DBGrid1->SelectedField->AsString);
, вызванный по нажатию кнопки, прекрасно отрабатывает, если в Гриде было выбрано какое-то поле. То есть, обращение к SelectedField->AsString вполне легально. А что там у тебя творится в IBQuery я не знаю...

Если передаешь значение непосредственно:
IBQuery2->Params->ParamByName("A")->AsString="что-то";
, работает?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(volvo @ 3.12.2008 2:10) *

Если передаешь значение непосредственно:
IBQuery2->Params->ParamByName("A")->AsString="что-то";
, работает?

Да..отрабатывает без ошибок..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Ну, тогда попробуй разделить эту операцию на 2: Сначала читать из ячейки Грида в дополнительную переменную (AnsiString), а потом - передавать эту строку в Query, и смотри, на каком этапе возникнет ошибка...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(volvo @ 3.12.2008 10:30) *

Ну, тогда попробуй разделить эту операцию на 2...

Вот...Попробывала..

IBQuery2->Close();
AnsiString temp;
temp=DBGrid1->SelectedField->AsString; //вот здесь мы и вылетаем...
IBQuery2->Params->ParamByName("A")->AsString=temp;
IBQuery2->Open();


т.е. что-то не так со считыванием из Grid..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Интересно... Мне такую ошибку удалось воспроизвести только при условии, что свойство DataSource->DataSet->Active этого самого Грида выставлено в False, тогда действительно из Грида ничего нельзя прочесть, ведь читать, собственно, нечего. Но тогда ведь и Грид пустой, он просто ничего не содержит, поскольку источник данных неактивен (или в 6-ом Билдере как-то по другому?)

Во всех других случаях, если в Гриде что-то есть, и присутствует эта стрелочка (активная запись) слева, то обращение к SelectedField отрабатывает без сбоя, другого простого способа обратиться к выбранному элементу по-моему просто нет... Кстати, а на каком событии висит у тебя этот код? Когда он вызывается?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Удалила компоненты и создала всё заново...И заработало-таки!
Спасибо за помощь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 14:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name