Здравствуйте!
Предположим, у меня есть компонент DBGrid2, куда будут выводятся результаты запроса компонента IBQuery2, но в тексте запроса присутствует параметр, в качестве которого хочу передавать значение поля, выделенного в другой DBGrid1....Так вот..а как прописать??
IBQuery2->Close();
//IBQuery2->Params->ParamByName("A")->AsString=DBGrid1-> а дальше не знаю...
IBQuery2->Open();
Ну, если
IBQuery2->Params->ParamByName("A")->AsString=DBGrid1->SelectedField->AsString;
IBQuery2->Params->ParamByName("A")->AsString=DBGrid1->SelectedField->AsString;
Не знаю... Ошибка возникает не при чтении из DBGrid1, а при работе с IBQuery скорее всего, потому что код
ShowMessage(DBGrid1->SelectedField->AsString);, вызванный по нажатию кнопки, прекрасно отрабатывает, если в Гриде было выбрано какое-то поле. То есть, обращение к SelectedField->AsString вполне легально. А что там у тебя творится в IBQuery я не знаю...
IBQuery2->Params->ParamByName("A")->AsString="что-то";, работает?
IBQuery2->Params->ParamByName("A")->AsString="что-то";, работает?
Ну, тогда попробуй разделить эту операцию на 2: Сначала читать из ячейки Грида в дополнительную переменную (AnsiString), а потом - передавать эту строку в Query, и смотри, на каком этапе возникнет ошибка...
IBQuery2->Close();
AnsiString temp;
temp=DBGrid1->SelectedField->AsString; //вот здесь мы и вылетаем...
IBQuery2->Params->ParamByName("A")->AsString=temp;
IBQuery2->Open();
Интересно... Мне такую ошибку удалось воспроизвести только при условии, что свойство DataSource->DataSet->Active этого самого Грида выставлено в False, тогда действительно из Грида ничего нельзя прочесть, ведь читать, собственно, нечего. Но тогда ведь и Грид пустой, он просто ничего не содержит, поскольку источник данных неактивен (или в 6-ом Билдере как-то по другому?)
Во всех других случаях, если в Гриде что-то есть, и присутствует эта стрелочка (активная запись) слева, то обращение к SelectedField отрабатывает без сбоя, другого простого способа обратиться к выбранному элементу по-моему просто нет... Кстати, а на каком событии висит у тебя этот код? Когда он вызывается?
Удалила компоненты и создала всё заново...И заработало-таки!
Спасибо за помощь!