ADODB.Connection и OleDBDataAdapter..вопрос

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Loiste
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 136
Зарегистрирован: 28.09.2005 (Ср) 11:59

ADODB.Connection и OleDBDataAdapter..вопрос

Сообщение Loiste » 29.11.2005 (Вт) 9:34

Если подключаешься через OLeDBConnection дальше можно описать OleDBDataAdapter, заполнить DataSet и работать с данными. А если через ADODB.Connection - то OleDBAdapter можно описать тем же способом, но вот заполнить DataSet методом Fill уже нельзя. Возникает системное исключение на этой строке.

1. Как можно заполнить OleDBDataAdapter при подключении через ADODB.Connection или описать другой адаптер?

2. Если этого сделать нельзя, то зачем вообще нужен ADODB.Connecton? Только для того, чтобы создавать пустые базы данных?

waaad
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 29.11.2005 (Вт) 9:04
Откуда: Санкт-Петербург

Сообщение waaad » 29.11.2005 (Вт) 9:54

На сколько я знаю, а знаю я еще мало:
ADODB.Connection - это ADO, а
OLeDBConnection - это ADO.NET,
соответственно и реализации разные.

Loiste
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 136
Зарегистрирован: 28.09.2005 (Ср) 11:59

Сообщение Loiste » 29.11.2005 (Вт) 10:28

Да, видимо :)

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: ADODB.Connection и OleDBDataAdapter..вопрос

Сообщение Andrey Fedorov » 29.11.2005 (Вт) 11:05

Loiste писал(а):Если этого сделать нельзя, то зачем вообще нужен ADODB.Connecton? Только для того, чтобы создавать пустые базы данных?


Ну почему, можно работать как и раньше - с ADODB.Recordset-aми, к примеру...

P.S А пустые базы, это, кстати, ADOX...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Loiste
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 136
Зарегистрирован: 28.09.2005 (Ср) 11:59

Сообщение Loiste » 29.11.2005 (Вт) 11:54

Да, это я перепутала. Конечно, пустая база создается через ADOX, а вот таблички в ней создавала я уже с помощью ADODB :)

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.11.2005 (Вт) 11:55

Loiste писал(а):Да, это я перепутала. Конечно, пустая база создается через ADOX, а вот таблички в ней создавала я уже с помощью ADODB :)


И таблички/вьюшки можно было через ADOX...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Loiste
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 136
Зарегистрирован: 28.09.2005 (Ср) 11:59

Сообщение Loiste » 29.11.2005 (Вт) 12:40

Да? Я делала вот так:

Код: Выделить всё
Dim strDbName As String
        strDbName = Application.StartupPath.Remove(Application.StartupPath.Length - 4, 4) + "\db\" + DiscDBName
        'creation of new database
        Dim catConnection As ADOX.Catalog
        catConnection = New ADOX.Catalog
        catConnection.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & _
                             "Data Source=" & strDbName)
        catConnection = Nothing
        'end of creation of new database
        '---------------
        'creating of new table
        Dim con As ADODB.Connection
        Dim strSQL As String
        con = New ADODB.Connection
        con.Open("Provider=Microsoft.Jet.OLEDB.4.0;" & _
                             "Data Source=" & strDbName)
        strSQL = "CREATE TABLE Razdeli (" & _
                 "Razd_ID int," & _
                 "Razdel VarChar(150));"
        con.Execute(strSQL)
        strSQL = "CREATE TABLE Topics (" & _
                 "Razd_ID int," & _
                 "Topic_ID int," & _
                 "Topic VarChar(150));"
        con.Execute(strSQL)
        strSQL = "CREATE TABLE Questions (" & _
                 "Topic_ID int," & _
                 "Quest_ID int," & _
                 "Var int," & _
                 "Question VarChar(150)," & _
                 "Ans_Num int);"
        con.Execute(strSQL)
        strSQL = "CREATE TABLE Answers (" & _
                 "Quest_ID int," & _
                 "Ans_ID int," & _
                 "Answer VarChar(150)," & _
                 "Ans_Key Bit);"
        con.Execute(strSQL)
        strSQL = "CREATE TABLE Variants (" & _
                 "ID int," & _
                 "Variant VarChar(150));"
        con.Execute(strSQL)
        con = Nothing
        'end of creation of new table


А как сделать это через ADOX?

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.11.2005 (Вт) 12:46

Loiste писал(а):А как сделать это через ADOX?


См. Help у Tables Collection (ADOX) - там есть пример.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Loiste
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 136
Зарегистрирован: 28.09.2005 (Ср) 11:59

Сообщение Loiste » 29.11.2005 (Вт) 12:53

У меня нет Help...версия такая...я читаю MSDN, но, кажется, там я не видела..

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.11.2005 (Вт) 13:35

Loiste писал(а):У меня нет Help...версия такая...я читаю MSDN, но, кажется, там я не видела..


Да все там есть... Но лучше все-ж озадачиться и Help поставить.

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

Sub CreateTable()

   Dim tbl As New Table
   Dim cat As New ADOX.Catalog

'Open the catalog.
   ' Open the Catalog.
   cat.ActiveConnection = _
      "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=c:\Program Files\Microsoft Office" & _
      "Office\Samples\Northwind.mdb;"

   tbl.Name = "MyTable"
   tbl.Columns.Append "Column1", adInteger
   tbl.Columns.Append "Column2", adInteger
   tbl.Columns.Append "Column3", adVarWChar, 50
   cat.Tables.Append tbl

End Sub
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Loiste
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 136
Зарегистрирован: 28.09.2005 (Ср) 11:59

Сообщение Loiste » 01.12.2005 (Чт) 16:24

Спасибо за помощь! :)


Вернуться в Visual Basic .NET

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

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

    TopList