Результат запроса из *.mdb в массив

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Тимофей
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 01.03.2004 (Пн) 10:01
Откуда: Киров

Результат запроса из *.mdb в массив

Сообщение Тимофей » 02.02.2005 (Ср) 9:52

Имеется *.mdb база. По результатам запроса из таблицы выбирается часть записей. Их нужно скинуть в массив. Возможно ли это способом отличным от перебора всех записей:
If .RecordCount > 0 Then
.MoveLast
.MoveFirst
For NumKom = 1 To .RecordCount
' функция обработки
.MoveNext
Next NumKom
End If
Аналогично для записи из массива в таблицу БД.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 02.02.2005 (Ср) 12:37

Код: Выделить всё
Dim rs as ADODB.Recordset

...
rs.Save app.Path & "\saved.xml",adpersistxml
...

Тимофей
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 01.03.2004 (Пн) 10:01
Откуда: Киров

Сообщение Тимофей » 02.02.2005 (Ср) 12:45

А если DAO, и насколько я понял результат сбрасывается в файл *.xml ?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 02.02.2005 (Ср) 12:56

c DAO слишком муторно и давно уже не использовал.
а в ADO технологий следующая:
1. открываешь соединение
2. получаешь клиентский рекордсет
3. сохраняешь его в файл (ADTG, XML - это по-вкусу)
4. если нужно уже после можешь загрузить указанный рекордсет из этого файла и внести нужные изменения
5. подключаешь его обратно к коннекшену
6. апдейтишь свои внесенные изменения
7. закрываешь рекордсет и коннекшн

Тимофей
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 01.03.2004 (Пн) 10:01
Откуда: Киров

Сообщение Тимофей » 02.02.2005 (Ср) 13:03

А я к сожалению не работал с DAO.
Все что написал, понятно. Но как это программно выглядит? И еще. Мой вопрос я задал потому что
заполнение объекта рекордсет происходит сравнительно долго (записей 200 например). Будет ли быстрее твой вариант с записью файла на диск, затем чтением данных из него ?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 02.02.2005 (Ср) 13:25

конечно

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 02.02.2005 (Ср) 13:32

Код: Выделить всё
dim cn as ADODB.Connection
Dim rs as ADODB.Recordset
Dim sConnect as string
Dim SQL as string

sConnect="Provider=Microsoft.Jet.OLEDB.4.0;Password=;Data Source=" & app.Path & "\my.mdb;Persist Security Info=True"

set cn=New ADODB.Connection
cn.Open sConnect


SQL="SELECT * FROM MyTable"

set rs=New ADODB.recordset
rs.CursorLocation=adUseClient
set rs.ActiveConnection=cn
rs.Open SQL, , adOpenStatic, adLockReadOnly, adCmdText
set rs.ActiveConnection=Nothing

rs.Save App.Path & "\saved.xml", adPersistXML

...


Тимофей
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 01.03.2004 (Пн) 10:01
Откуда: Киров

Сообщение Тимофей » 02.02.2005 (Ср) 13:48

Ламерский вопрос, но как еще подключить к проекту ?

Тимофей
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 01.03.2004 (Пн) 10:01
Откуда: Киров

Сообщение Тимофей » 02.02.2005 (Ср) 13:51

Имел в виду ADODB.
И как скинуть потом данные из *.xml в массив.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 02.02.2005 (Ср) 14:24

Project\References\Microsoft ActiveX Data Objects 2.5(или 2.6,2.7,2.8) Library

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 02.02.2005 (Ср) 14:28

а зачем тебе из XML в массив кидать?
ты же его также и откроешь прямо в рекордсете:

Код: Выделить всё

...
rs.open app.path & "\saved.xml", "Provider=MSPersist",adOpenDynamic, adLockBatchOptimistic, adCmdFile
...



Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList