|
|
|
Как определить, что файл - это база ACCESS без коннекта
|
|||
|---|---|---|---|
|
#18+
Как определить, что некоторый файл на диске - это база ACCESS? На расширение файла, я думаю, полагаться не стоит. Коннектиться к нему чем либо (OBDC, OLE DB, Access) тоже нет возможности. Как можно, открыв файл, и прочитав его содержимое (лучше всего начало), определить, что это база ACCESS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 20:56 |
|
||
|
Как определить, что файл - это база ACCESS без коннекта
|
|||
|---|---|---|---|
|
#18+
'функция проверяет МДБшность файла с именем filename типа C:\basa.txt 'если это файл MDB базы той же версии ACCESS (или библиотеки DAO, если проверка не из оболочки ACCESS) то вернет 0 Function ControlMDBFile(ByVal filename As String) As Integer Dim wsp As DAO.Workspace, dbs As DAO.Database ' Возвращает ссылку на заданную по умолчанию рабочую область. Set wsp = DBEngine.Workspaces(0) ' Возвращает ссылку на файл filename. Если не ACCESS или не та версия 'то вернет ошибку 3343 Нераспознаваемый формат базы данных: filename. On Error Resume Next Set dbs = wsp.OpenDatabase(filename) 'посмотреть, что получилось Debug.Print Err, Err.Description 'вернуть код ошибки ControlMDBFile = Err 'освободить объектную переменную Set dbs = Nothing End Function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 05:22 |
|
||
|
Как определить, что файл - это база ACCESS без коннекта
|
|||
|---|---|---|---|
|
#18+
Ну это же функция для DAO. Я написал, что коннектиться к файлу не могу ничем. Т.к. это операция длительная, а файлов для проверки может быть за раз N штук, т.е. м.б. и 10000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 11:07 |
|
||
|
Как определить, что файл - это база ACCESS без коннекта
|
|||
|---|---|---|---|
|
#18+
Слушай, сам аксес не всегда может определить что ему подсунули. Никогда что ли не видел фразы типа "Файл поврежден или не является файлом базы данных аксес"? Так что полагайся на расширение и не мучайся Другие варианты ничуть не лучше. Ну прочитаешь ты начало файла, вытащишь оттуда что-то, по чему сделаешь вывод что это именно аксесовский файл. И вывод будет неправильным. Ибо аксес этот файл не воспримет. По определению (близко к нему) - файл является файлом базы данных аксес тогда и только тогда когда с ним может работать аксес Если аксес не может работать с этим файлом - значит это хрень какая-то, что бы там не было написано в начале файла. Если аксес может с файлом нормально работать - значит это то что тебе нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 11:17 |
|
||
|
Как определить, что файл - это база ACCESS без коннекта
|
|||
|---|---|---|---|
|
#18+
Я думаю тут все-равно многоступенчатый процесс нужен - сначала проверка простая и быстрая, а потом уже скармливать прошедших непосредственно ACCESSу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 11:27 |
|
||
|
Как определить, что файл - это база ACCESS без коннекта
|
|||
|---|---|---|---|
|
#18+
На расширение полагаться не могу, т.к. сам в программе позволяю архивировать базу в файл с любым расширением (вернее не я, а винда). Я тут заметил вначале своих ACCESS баз строчку "Standard Jet DB". Буду наверно полагаться на нее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 11:31 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1773&tid=1680341]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 201ms |
| total: | 329ms |

| 0 / 0 |
