C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
BDS2006 + dbExpress + MySql, выборка не получается :(
Любитель
Отправлено: 15.02.2007, 18:55


Дежурный стрелочник

Группа: Участник
Сообщений: 53



Здравствуйте! На форме SQLConnection1 — коннест есть. все нормально. SQLQuery1. Необходимо сделать выборку из таблицы. Структура следущая:
Имя поля | Тип
id | int  — - первичный
chislo | shorint
field1 | varchar(32)
text | text
Я не совсем понимаю для чего у компонента SQLQuery1 нужны Fields. В них будут сохранятся результаты выборки? а для чего нужно Params?
В общем в Инспекторе Полей SQLQuery1 добавил поле id и указал Field Type — Data. В свойство SQL написал следущее:
"SELECT id FROM mytable". Все ОК. это выборкка только одного поля id. Теперь хочу еще сделать выборку по полю chislo. Добавил Инспекторе Полей новое поле chislo, тип String, Field Type — Data. Изменил текст запроса на такой:
"SELECT id, chislo FROM mytable"
Активизирую SQLQuery1 (Active = true) и вылетает ошибка:
Access violation at adress 13B3B960 in module "dbxmys30.dll". Read of address 00000002
В чем дело?
Valdemar
Отправлено: 16.02.2007, 17:35


Мастер участка

Группа: Участник
Сообщений: 433



Fields можно и не заполнять. Его удобно использовать когда необходимо сделать новое поле, которое получается не выборкой данных из таблиц, например, вычислимое поле.
Params служит для работы с параметрами параметрических запросов.
Любитель
Отправлено: 16.02.2007, 17:41


Дежурный стрелочник

Группа: Участник
Сообщений: 53



QUOTE (Valdemar @ 16.02.2007, 17:35)
Fields можно и не заполнять. Его удобно использовать когда необходимо сделать новое поле, которое получается не выборкой данных из таблиц, например, вычислимое поле.
Params служит для работы с параметрами параметрических запросов.

Если я не заполняю поля Fields, то вылетает ошибка
Access violation at adress 13B3B960 in module "dbxmys30.dll". Read of address 00000002
ion
Отправлено: 22.02.2007, 12:34


Ученик-кочегар

Группа: Участник
Сообщений: 15



Q->Close();
Q->SQL->Clear();
Q->SQL->Add("SELECT id FROM mytable");
int id=Q->FieldByName("ID")->AsInteger;
AnsiString SS=Q->FieldByName("field1")->AsString;
но вообщето Експесс под мускул глючная вещь, стндартная не работала
поищи в интернете болле реальные експрессы

Вернуться в Вопросы программирования в C++Builder