Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
Проблема в следующем: написал ДЛЛ(VB.NET) в ней есть функция Public Function gettable(ByVal query As String) As DataTable - возвращает таблицу данных. Подключаю ДЛЛ в .NET - всё работает нормально. НО надо чтоб всё это работало в 6 Судии, а там нету такого типа(DataTable). Чтоб не переписывать ДЛЛ в 6 студии принято решение возвращать Variant. Но я не знаю как конвертнуть DataTable to Variant. Может кто знает??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 17:38 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
ИМХО так не получится, если будете возвращать вариант (он же object в .НЕТе), то все равно на получателе должен быть тзвестен тип DataTable. Решение вижу такое - возвращать XML'ое представление таблицы, может это и изврат... а для чего тебе в 6 васик возвращать .нетовскую таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 17:48 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
хотя попробуй так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 17:53 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
не чето я туплю, если уже в 6 студии что-то работает, то так и было сделано))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 17:54 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
AzartПроблема в следующем: написал ДЛЛ(VB.NET) в ней есть функция Public Function gettable(ByVal query As String) As DataTable - возвращает таблицу данных. Подключаю ДЛЛ в .NET - всё работает нормально. НО надо чтоб всё это работало в 6 Судии, а там нету такого типа(DataTable). Чтоб не переписывать ДЛЛ в 6 студии принято решение возвращать Variant. Но я не знаю как конвертнуть DataTable to Variant. Может кто знает??? Возможно стОит подумать над тем, чтобы для вызова из VS 6 отдельный метод возвращал обычный ADO (не ADO.net) Recordset, для того же самого query Для этого придется к DLL подключить библиотеку ADO 2.X (не ADO.Net) Не утверждаю, что это решение лучше, чем приведение DataTable к какому-то "общеупотребимому" типу или сериализация его в XML, но может быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 18:05 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
автора для чего тебе в 6 васик возвращать .нетовскую таблицу? возвращаю я её не в 6 Бейсике, а в 6 С++ - хотя мне кажется большой разницы нету. Лиман Артём, в вы уверены, что Variant в 6 и 7 студии разные типы? По ходу решения проблемы возник вопрос, а String в 6 и 7 студии одинаковые, если нет, то Public Function gettable(ByVal query As String) As DataTable - ХЗ как получать query(мне её передают из 6 студии)? Вообще типы 6 и 7 студии совместимы??? Пока проверить выши варианты нет возможности, тоже не стоит 6 студия :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 18:25 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
>>в вы уверены, что Variant в 6 и 7 студии разные типы? а черт его знает, в 6 васике был такой тип вроде, равнозначный ему сделали общий тип object, кем он вылезит в 6 студии? - бес его знает, возможно, если метод помечен как сом, то враппер конвертнет его в сродный тип, но как дальше ты с ним сможешь работать я не знаю... насчет стринга вроде должно быть все нормально, если можна из .НЕТ вставить в апи функцию строку, то думаю и возвратить в сом ее можна... но стринг это простой тип, а вот таблица посложней будет, мне кажется, что вариант тут не поможет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 18:33 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
Знать бы что поможет. XML'ое представление таблицы - это мне кажется странным, вроде 6 студия не рюхает XML, там вроде даже парсера нету по нему. Если строковый тип одинаковый, то можно взять все Row из Datatable и попробывать запихать в строку и передавать эти строки. Хотя тоже изврат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 18:55 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
AzartЗнать бы что поможет. Почему вам не последовать совету AlexeyKudinov? Ведь примеров работы с ADO2х из .NET много. А вот примера работы с Variant я не видел. Когда-то изучал структуру этого типа, и ссылку обязательно бы заметил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 19:04 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
AzartXML'ое представление таблицы - это мне кажется странным, вроде 6 студия не рюхает XML, там вроде даже парсера нету по нему. "Рюхает" Достаточно подключить к проекту библиотеку MSXML.dll (есть несколько версий) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 19:13 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
авторВозможно стОит подумать над тем, чтобы для вызова из VS 6 отдельный метод возвращал обычный ADO (не ADO.net) Recordset, для того же самого query Для этого придется к DLL подключить библиотеку ADO 2.X (не ADO.Net) Мне не совсем понятно, что сдесь к чему. ADO 2.X я должен подключить к своей ДЛЛ и возвращать не DataTable, а Recordset. И в 6 студии Recordset не будет проблем с Recordset? P.S: Я пиш ДЛЛ в 7 студии, а её будут юзать другие люди из 6 студии. Причём им эти данные ещё надо будет модифицировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 19:21 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
Где можно взять ADO 2.X? Может возможно подключить к 6 студии библиотеку, которая описывает DAtaTable, так чтобы её стал известен этот тип данных и тогда проблема должна исчезнуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 15:32 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
Microsoft ADO Ext 2.x for DDL and Security это оно? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 15:33 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
AzartMicrosoft ADO Ext 2.x for DDL and Security это оно? :) Нет, не оно. Оно - Microsoft ActiveX Data Objects 2.x Library Поставляется с Mdac и бывает разных версий. Mdac обычно появляется на машине вместе с IE, но его ставят и другие программы AzartМожет возможно подключить к 6 студии библиотеку, которая описывает DAtaTable, так чтобы её стал известен этот тип данных и тогда проблема должна исчезнуть. Нет, DataTable не описывается в ActiveX библиотеке, подключить не удастся. Еще раз, мне кажется, что вы не совсем понимаете его вы хотите добиться. " Я пиш ДЛЛ в 7 студии, а её будут юзать другие люди из 6 студии. Причём им эти данные ещё надо будет модифицировать " - спросите у "других людей" в каком виде они хотят данные. Возможно, что Recordset им и не к чему совсем. В общем случае - .net понимает и относительно неплохо работает с ActiveX объектами, которые можно создать в VB6 (например). Vb 6 же .Net объекты не понимает совсем (если они не "обернуты" как ActiveX) П.э. для совместной работы скорее всего придется использовать в .Net объекты, созданные в 6 студии. Объясните это "другим людям", пусть они выдадут вам класс или интерфейс, который им нужен, этот класс положат в ActiveX библиотеку, которую вы подключите к своей .Net библиотеке. Затем в своем методе создадите экземпляр этого класса, наполните данными и вернете назад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 16:38 |
|
||
|
DataTable to Variant
|
|||
|---|---|---|---|
|
#18+
Поговорил с "этими людьми". Они мне придоставляют свой Variant, я его . Оконверчу в строкубрабатываю получаю DataTable. И в ответ они хотят получать массив Вариантов. Который потом используют для своих целей. До изменений они получали Ройсеты, обрабатывали и заполняли ими списки. Наверно проще будет сесть на VB6 и всё там написать! Но мне сказали пиши хоть на 6 Бейсики, но возвращай нам массив вариантов - хз где их проще создавать??? Но зато они мне могут сразу кидать Стринг, а не Вариант. Хотя это не облегчает задачу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 18:49 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32863960&tid=1437483]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 212ms |
| total: | 366ms |

| 0 / 0 |
