Deutsch

COleSafeArray

90  
krys гость04.03.06 21:42
NEW 04.03.06 21:42 
Имеется примерно такая Ситуация:
COleSafeArray saMatrix;
DWORD numElements[] = {10, 5};
// creates a 2 dimensional safearray of type VT_I2
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements,0);
Знает ли кто-то как можно изменить первый параметр в numElements (т.е. 10 изменить на 20)? Как я понял redim() в этом случае не работает
стойте там и слушайте сюда, именно отсюда будет проистекать
#1 
Murr коренной житель05.03.06 01:20
Murr
NEW 05.03.06 01:20 
в ответ krys 04.03.06 21:42
Ты бы хоть среду, язык и используемые библиотеки указал...
Смотри в сторону .upperbound[]
#2 
krys посетитель05.03.06 01:43
NEW 05.03.06 01:43 
в ответ Murr 05.03.06 01:20
Я работаю с Visual Studio 6.0 ,Язык програмирования C++
MFC Library Reference
class COleSafeArray : public tagVARIANT
Header: afxdisp.h
Вроде как все
стойте там и слушайте сюда, именно отсюда будет проистекать
#3 
krys посетитель05.03.06 01:53
NEW 05.03.06 01:53 
в ответ Murr 05.03.06 01:20
Единственное что доступно в этом направлении есть Функция
GetUBound()-функции которая позволяла бы присвоить новое значение UBound я не нашел [хммм]
стойте там и слушайте сюда, именно отсюда будет проистекать
#4 
Murr коренной житель05.03.06 02:14
Murr
NEW 05.03.06 02:14 
в ответ krys 05.03.06 01:43
Сорри, с 6 студией работал всего пару-тройку месяцев более 7-ми лет назад - заморочек тааам...
Надо лезть в МСДН и смотреть что там и как прописывается. Думаю, что кто-нибудь из тех, пишет в 6-ке регулярно, даст ответ быстрее, чем я его выкопаю из МСДНа...
#5 
Murr коренной житель05.03.06 02:21
Murr
NEW 05.03.06 02:21 
в ответ krys 05.03.06 01:53
Это я давал уже уже к .нет студии. В ней просто читается/задается размер каким он должен быть.
GetUBound() должна читать значение размера. для установки, если есть, будет пользоваться SetUBound(...)... и эта пара должна быть доступна через свойство UBound... Но это - 6-ка - там сам билли ногу сломит и мозги вывихнет...
#6 
scorpi_ скептик05.03.06 08:37
05.03.06 08:37 
в ответ krys 04.03.06 21:42
В ответ на:
Знает ли кто-то как можно изменить первый параметр в numElements (т.е. 10 изменить на 20)? Как я понял redim() в этом случае не работает

Создать новый массив.
PS Когда я работал с safe arrays, я нарисовал собственный класс. На MFC-ный COleSafeArray смотреть без содрогания невозможно...
#7 
krys посетитель05.03.06 12:28
NEW 05.03.06 12:28 
в ответ scorpi_ 05.03.06 08:37
Я уже думал о том что бы создать новый маcсив, но можно ли сделать так что бы передать данные так сказать "одним махом" ,а не путем построчной передачи данных из одного массива в другой? Дело в том что я хотел использовать массив для ускорения передачи данных из базы данных в Excel-Документ(потом можно передать Excel'ю весь массив целиком).
стойте там и слушайте сюда, именно отсюда будет проистекать
#8 
digital_pilot авиатор х#ев05.03.06 18:38
NEW 05.03.06 18:38 
в ответ krys 05.03.06 12:28
В ответ на:
Дело в том что я хотел использовать массив для ускорения передачи данных из базы данных в Excel-Документ(

а не проще чем-нить вроде ADO + Jet воспользваться?
#9 
Murr коренной житель05.03.06 19:02
Murr
NEW 05.03.06 19:02 
в ответ digital_pilot 05.03.06 18:38
Оно, вообще-то, из другой оперы. Тут скорее Quick Report...
#10 
digital_pilot авиатор х#ев05.03.06 19:04
NEW 05.03.06 19:04 
в ответ Murr 05.03.06 19:02
я не знаю точного его задания... но на export / import / data transformation тоже очень смахивает...
#11 
Murr коренной житель05.03.06 19:10
Murr
NEW 05.03.06 19:10 
в ответ digital_pilot 05.03.06 19:04
Это врядли - при этих операциях не требуется в динамике менять размер.
#12 
digital_pilot авиатор х#ев05.03.06 19:19
NEW 05.03.06 19:19 
в ответ Murr 05.03.06 19:10
ну, хорошо, по сравнению с самопальным репортингом, пожалуй, зачастую да. Но писать самопальный репортинг - это вообще на несколько порядков геморройнее, чем самопальный экспорт.
#13 
Murr коренной житель05.03.06 19:55
Murr
NEW 05.03.06 19:55 
в ответ digital_pilot 05.03.06 19:19
Угу... Но что делать, если клиент уперт - Эксель и все...
#14 
krys посетитель05.03.06 22:20
NEW 05.03.06 22:20 
в ответ Murr 05.03.06 19:55
Именно : Шеф сказал займитесь COleSafeArray- и я сижу занимаюсь,завтра он приедет будем как то решать вопрос.
стойте там и слушайте сюда, именно отсюда будет проистекать
#15