Создание базы Аксесс (проблемма)

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

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

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Создание базы Аксесс (проблемма)

Сообщение Sebas » 05.09.2003 (Пт) 11:03

Создаю базу Аксесс в ДАО СОМ,
Код: Выделить всё
                Dim DAODBEngine As New DAO.DBEngine()
                DAODBEngine.CreateDatabase("c:\db1.mdb", DAO.LanguageConstants.dbLangCyrillic & ";pwd=pwd")
                DAODBEngine = Nothing

            CN=New OleDBConnection
            CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="c:\db1.mdb;Jet OLEDB:Database Password=pwd"
            CN.Open()


всё проходит но при попытке присоединиться через ADO.NET говорит, что файл занят. Ошибка происходит если только перед открытием создавалась база, если уже была, то всё ОК

В VB6 через ADO такого не было....

Кстати, а как создать базу Access через ADO.NET?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 05.09.2003 (Пт) 11:18

Вот что происходит:

ПОсле данного кода

Код: Выделить всё
Dim DAODBEngine As New DAO.DBEngine()
DAODBEngine.CreateDatabase("c:\db1.mdb", DAO.LanguageConstants.dbLangCyrillic & ";pwd=pwd")
DAODBEngine = Nothing


создаётся файл базы данных.
Акссесс его не открывает говорит: Файл находиться в использовании.
Но! файла db1.mdl (не путать с mdb) нет - то есть база не открыта никем.

Не пойму, где капать?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 05.09.2003 (Пт) 12:01

Код: Выделить всё
                Dim DAODBEngine As New DAO.DBEngine()
                Dim DAODBDatabase As DAO.Database
                DAODBDatabase = DAODBEngine.CreateDatabase("c:\db1.mdb", DAO.LanguageConstants.dbLangCyrillic & ";pwd=mypwd")
                DAODBDatabase.Close()
                DAODBDatabase = Nothing
                DAODBEngine = Nothing


А вот после такого создания базы работает!!!!!!!!!!!!!!!!!!
Чувствуете чем пахнет - НЕДЕТЕРМЕНИРОВАНОЕ ЗАВЕРШЕНИЕ!!!
Объект DAODBDatabase висел в воздухе с не вызванным методом CLOSE и ждал когда его подберёт мусорщих.

Я в панике!!!!! Как переводить большие проекты, где всё на COM -ужас!

Вопрос по созданию базы Access в ADO.NET остаётся актуальным.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

val
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 14.11.2002 (Чт) 1:14

Сообщение val » 02.10.2003 (Чт) 3:21

Вообще это плохо использовать com object с .NET. Тем более DAO
Вот тебе пример как Create Database с ADO.NET

http://msdn.microsoft.com/library/defau ... tabase.asp

И вообще вот здесь найдёшь много полезного

http://msdn.microsoft.com/vbasic/downlo ... mples.aspx

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 14.10.2003 (Вт) 19:29

Простите, а как работать с базами JET?
Можно через АДО создать, но только чем это будет отличаться?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru


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

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

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

    TopList  
cron