Лена |
Отправлено: 24.08.2005, 10:14 |
|
Мастер участка
Группа: Участник
Сообщений: 501
|
В одном из методов компонента MapX, для картографии, есть метод Search, этот метод принимает указатель на тип wchar_t, т.е. прототип такой: Search (wchar_t * Address, …)
Мне надо передать в первый параметр этого метода значение хранящиеся в Table2->FieldValues["ID"].
Подскажите, как корректно преобразовать это выражение в тип указателя на wchar_t чтобы в методе Search оказалось то что нужно из Table2->FieldValues["ID"]?
Таблица dbf тип колонки number. Там находятся значения вида 6347903, 6338227 и т.д.
Код ниже не правельный:
int id = Table2->FieldValues["ID"]->AsInteger;
WideString wsid = WideString(id);
// Search(wsid.c_bstr()); будет использоваться для метода Search
На строке
int id = Table2->FieldValues["ID"]->AsInteger;
ошибка: Pointer to structure required on left side of -> or ->*
|
|
Admin |
Отправлено: 24.08.2005, 10:20 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Что касается именно этой ошибки -
или
CODE | int id = Table1->FieldValues["ID"]; |
или
CODE | int id = Table1->FieldByName("ID")->AsInteger; |
Отредактировано Admin — 24/08/2005, 10:21
|
|
GIZMO |
Отправлено: 24.08.2005, 10:53 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
QUOTE (Лена @ 24/08/2005, 10:14) | Код ниже не правельный:
int id = Table2->FieldValues["ID"]->AsInteger;
WideString wsid = WideString(id);
|
Creates an instance of WideString.
__fastcall WideString(): Data(0) {}
__fastcall WideString(const char* src);
__fastcall WideString(const WideString& src);
__fastcall WideString(const AnsiString& src);
__fastcall WideString(const wchar_t* src, int len);
__fastcall WideString(const wchar_t* src);
__fastcall WideString(const wchar_t src);
Где __fastcall WideString(int Value);?
|
|
Лена |
Отправлено: 24.08.2005, 12:20 |
|
Мастер участка
Группа: Участник
Сообщений: 501
|
Спасибо за советы!
Значит окончательно:
int id = Table2->FieldByName("ID")->AsInteger;
String sid = String(id);
WideString wsid = WideString(id);
Правильно?
|
|
Лена |
Отправлено: 24.08.2005, 12:21 |
|
Мастер участка
Группа: Участник
Сообщений: 501
|
так:
int id = Table2->FieldByName("ID")->AsInteger;
String sid = String(id);
WideString wsid = WideString(sid);
|
|
GIZMO |
Отправлено: 24.08.2005, 13:01 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
QUOTE (Лена @ 24/08/2005, 12:21) | так:
int id = Table2->FieldByName("ID")->AsInteger;
String sid = String(id);
WideString wsid = WideString(sid); |
А почему сразу не ->AsString?
|
|
Лена |
Отправлено: 24.08.2005, 13:13 |
|
Мастер участка
Группа: Участник
Сообщений: 501
|
Значит так:
CODE |
String sid = Table2->FieldByName("ID")->AsString;
WideString wsid = WideString(sid);
а если бы я хотела использовать не FieldByName а FieldValues, то тогда просто
String sid = Table2->FieldValues["ID"];
WideString wsid = WideString(sid);
|
Правильно? |
|
GIZMO |
Отправлено: 25.08.2005, 09:07 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
QUOTE (Лена @ 24/08/2005, 13:13) | Значит так:
CODE |
String sid = Table2->FieldByName("ID")->AsString;
WideString wsid = WideString(sid);
а если бы я хотела использовать не FieldByName а FieldValues, то тогда просто
String sid = Table2->FieldValues["ID"];
WideString wsid = WideString(sid);
|
Правильно? |
Да.
|
|
olegenty |
Отправлено: 25.08.2005, 09:24 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
а можно и так (покороче запись получается):
CODE |
WideString wsid = Table2->FieldByName("ID")->AsString;
|
|
|