powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Скопировать структуру RecordSet
5 сообщений из 5, страница 1 из 1
Скопировать структуру RecordSet
    #38262931
Shizuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пишу:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Form_Load()
  Dim rsBuild As ADODB.Recordset
  Set rsBuild = New ADODB.Recordset
  With rsBuild
    .CursorLocation = adUseClient
    .Fields.Append "Question", adLongVarWChar, 1
    "Answer", adLongVarWChar, 1
    .Open
    .AddNew 0, String(5000, "*")
    .Update
    Debug.Print .Fields(0)
    .Close
  End With
  Set rsBuild = Nothing
End Sub



А можно как-нибудь скопировать структуру таблицы из другого открытого RecordSet?
Чтобы не писать безумно длинный .Fields.Append ?
...
Рейтинг: 0 / 0
Скопировать структуру RecordSet
    #38262932
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не писать безумно длинный .Fields.Append, существуют циклы. Fields это коллекция.
...
Рейтинг: 0 / 0
Скопировать структуру RecordSet
    #38279092
Shizuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

Я имел ввиду именно структуру. В итоге у меня получилось примерно следующее:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
With rsBuild
 .CursorLocation = adUseClient
 .Fields.Append "num_ls", adDouble, 8
 .Fields.Append "num_dog", adVarWChar, 7, attrib:=adFldIsNullable + adFldUpdatable
 .Fields.Append "datdog", adDate, 8, attrib:=adFldIsNullable + adFldUpdatable
 .Fields.Append "fam", adVarWChar, 30, attrib:=adFldIsNullable + adFldUpdatable
 .Fields.Append "im", adVarWChar, 20, attrib:=adFldIsNullable + adFldUpdatable
 .Fields.Append "ot", adVarWChar, 20, attrib:=adFldIsNullable + adFldUpdatable
 .Fields.Append "nname", adVarWChar, 30
 .Fields.Append "n_dom", adVarWChar, 20, attrib:=adFldIsNullable + adFldUpdatable
 .Fields.Append "n_kv", adVarWChar, 4, attrib:=adFldIsNullable + adFldUpdatable
 .Fields.Append "crsumma", adDouble, 8
 .Fields.Append "prsumma", adDouble, 8
 .Fields.Append "kolmes", adDouble, 8
 .Open
' Здесь действия над таблицей
 .Close
End With



Как видите, без педантичного перечисления "ап'эндов" не обошлось! :)
...
Рейтинг: 0 / 0
Скопировать структуру RecordSet
    #38279107
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я типа что-то другое имел ввиду?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Public Function CreateRSCopy(rsSource As ADODB.Recordset) As ADODB.Recordset
Dim rsCopy As ADODB.Recordset
Dim f As ADODB.Field
Dim i As Long
    Set rsCopy = New ADODB.Recordset
    'копирование структуры
    For Each f In rsSource.Fields
        rsCopy.Fields.Append f.Name, f.Type, f.DefinedSize, f.Attributes And adFldIsNullable
        If f.Type = adNumeric Then
            rsCopy.Fields(f.Name).Precision = f.Precision
            rsCopy.Fields(f.Name).NumericScale = f.NumericScale
        End If
    Next f

    'копирование данных
    rsCopy.Open
    If rsSource.RecordCount > 0 Then
        rsSource.MoveFirst
        While Not rsSource.EOF
            rsCopy.AddNew
            For i = 0 To rsSource.Fields.Count - 1
                rsCopy.Fields(i).Value = rsSource.Fields(i).Value
            Next i
            rsSource.MoveNext
        Wend
        rsSource.MoveFirst
        rsCopy.MoveFirst
    End If
    Set CreateRSCopy = rsCopy
    Set rsCopy = Nothing
End Function
...
Рейтинг: 0 / 0
Скопировать структуру RecordSet
    #38279118
Shizuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

Упс! Красиво... А я тут через debug тоже самое вытягиваю и додумать не могу!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Скопировать структуру RecordSet
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]