|
|
|
Считывание столбцов таблицы
|
|||
|---|---|---|---|
|
#18+
Хочу через ADO получить названия всех столбцов заданной таблицы. Написал такой код std::vector<_bstr_t> coll; long i = 0; SAFEARRAY* psa = SafeArrayCreateVector(VT_VARIANT, 0, 4); _variant_t vtNull, var; vtNull.vt = VT_NULL; i=0; SafeArrayPutElement(psa, &i, &vtNull); i=1; SafeArrayPutElement(psa, &i, &vtNull); i=2; var.vt = VT_BSTR; var.bstrVal = bsTable; SafeArrayPutElement(psa, &i, &var); i = 3; SafeArrayPutElement(psa, &i, &vtNull); _variant_t Arr; Arr.vt = VT_ARRAY|VT_VARIANT; Arr.parray = psa; RecordsetPtr rs = conn->OpenSchema(adSchemaColumns, &Array); while (rs->EndOfFile != VARIANT_TRUE) { _bstr_t bs = rs->Fields->Item[(_bstr_t) "COLUMN_NAME"]->Value; coll.push_back(bs); rs->MoveNext(); } Проблема в том что попробовал на одной базе MySQL — всё ок, а вот в на таблице Аксесса выдаёт рекордсет нулевой длины ! В чём засада ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 16:58 |
|
||
|
Считывание столбцов таблицы
|
|||
|---|---|---|---|
|
#18+
Что-то как-то заморочено все выглядит. Может лучше так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2005, 10:43 |
|
||
|
Считывание столбцов таблицы
|
|||
|---|---|---|---|
|
#18+
Alex_VCЧто-то как-то заморочено все выглядит. Может лучше так: Код: plaintext 1. 2. 3. Нашёл ошибку (странно правда почему тогда MySQL проглатывал) - надо везде _variant_t vtEmpty.vt = VT_EMPTY; i=0; SafeArrayPutElement(psa, &i, &vtEmpty); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2005, 11:05 |
|
||
|
Считывание столбцов таблицы
|
|||
|---|---|---|---|
|
#18+
Alex_VCif(rs->Open(_T("select * from t"),....) лучше так : "select * from t WHERE 1=0" а если в таблицу много записей открываться долго будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2005, 22:14 |
|
||
|
Считывание столбцов таблицы
|
|||
|---|---|---|---|
|
#18+
Lepsik Alex_VCif(rs->Open(_T("select * from t"),....) лучше так : "select * from t WHERE 1=0" а если в таблицу много записей открываться долго будет Согласен, но это на усмотрение заказчика (я открывал всю таблицу- нужны были все записи и имена полей) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2005, 14:54 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32969290&tid=2033594]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 348ms |

| 0 / 0 |
