Генерация набора записей ADODB программно - PullRequest
2 голосов
/ 19 февраля 2010

Я пытаюсь создать ADO RecordSet программно в .Net. Это будет передано существующему устаревшему коду в VB6, который уже ожидает ADO RecordSet, я не хочу менять существующий код.

Мне удалось определить поля в новом RecordSet

ADODB.Recordset rs = new Recordset();
            rs.Fields.Append("Height", DataTypeEnum.adInteger, 4, FieldAttributeEnum.adFldMayBeNull, null);

в VB6 я могу добавить записи после вызова Open на RecordSet без параметров:

rs.Open

когда я пытаюсь вызвать AddNew с помощью кода .net, он говорит, что набор записей должен быть открыт, и я не могу вызвать open, потому что он ожидает следующие параметры:

void Open(object Source, object ActiveConnection, CursorTypeEnum CursorType, LockTypeEnum LockType, int Options);

но я пытаюсь загрузить RecordSet программно, и у меня нет активного соединения или другого источника данных.

Чего мне не хватает? Есть ли лучший способ?

1 Ответ

1 голос
/ 19 февраля 2010

Все эти параметры являются необязательными в методе ADODB.Recordset.Open .Попробуйте явно передать значения по умолчанию, как указано в документации .Есть один параметр, Source, без явного значения по умолчанию.Я полагаю, по умолчанию Nothing. РЕДАКТИРОВАТЬ Я угадал, по-видимому, это System.Type.Missing

Таким образом, решение:

rs.Open (System.Type.Missing, System.Type.Missing, _
  adOpenUnspecified, adLockUnspecified, -1)
...