On-line: Andrey, Haz, гостей 0. Всего: 2 [подробнее..]
АвторСообщение



Пост N: 246
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 26.12.14 10:58. Заголовок: работа с MDB


Всем привет !

Есть mdb-файл для его открытие требуедся в Accesse'e установить связь с файлом рабочей группы mdw (который также присутствует). Пароль администратора известен.

Как прогаммно можно открыть такой mdb-файл. Стандартно через ADO не получается

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 10 [только новые]


администратор




Пост N: 406
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.12.14 11:21. Заголовок: Попробуй так ..


Попробуй так
oConnection := CreateObject( "ADODB.Connection" )
oConnection:Open( "Provider=Microsoft.Jet.OLEDB.4.0;User ID=" + cUser + ";Password=" + cPass + ";Data Source=" + cMdb + ";Persist Security Info=True;Jet OLEDB:System database=" + cMdw )



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 247
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 26.12.14 11:55. Заголовок: не получилось, хотя ..


не получилось, хотя через сам Access все норм

oCon:= TOleAuto():new("ADODB.Connection")
TRY
oCon:Open("Provider=Microsoft.Jet.OLEDB.4.0;User ID=gate;Password=gates;Data Source=config.mdb;Persist Security Info=True;Jet OLEDB:System database=gate.mdw")
lConnect := .t.
CATCH
MsgInfo('Connect Fail')
END


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4379
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.12.14 12:05. Заголовок: fil пишет: =gate.md..


fil пишет:

 цитата:
=gate.mdw


Может дорогу нужно к нему указать ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 248
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 26.12.14 12:07. Заголовок: все лежит там где ex..


все лежит там где exe'шник

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 407
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.12.14 12:26. Заголовок: fil пишет: oCon:Ope..


fil пишет:

 цитата:
oCon:Open("Provider=Microsoft.Jet.OLEDB.4.0;User ID=gate;Password=gates;Data Source=config.mdb;Persist Security Info=True;Jet OLEDB:System database=gate.mdw")



Чую это система контроля доступа "Gate" с карточками.

Именно такой строкой к ней цеплялся когда- то вот кусок кода из рабочей проги ( запускалась из папки где mdb и mdw )

Func ConnectMDB( cMdb, cMdw, cUser, cPass )
Local e
LOCAL cSql := ""
LOCAL aRows := { }
LOCAL i := 1
LOCAL xValue := ''
LOCAl oConnection

Try
oConnection := CreateObject( "ADODB.Connection" )
IF Ole2TxtError() != "S_OK"
MsgStop( "ADO is not available.", "Error" )
ExitProcess( 0 )
ENDIF

oConnection:Open( "Provider=Microsoft.Jet.OLEDB.4.0;User ID=" + cUser + ";Password=" + cPass + ";Data Source=" + cMdb + ";Persist Security Info=True;Jet OLEDB:System database=" + cMdw )

Catch e
MsgStop( "Operation: " + e:operation + "-" + "Description: " + e:Description + chr( 10 ) + XTOC( e:Args ), "Error" )
ExitProcess( 0 )
End

Return oConnection


PS.
может так
oConnection:Open("Provider=Microsoft.Jet.OLEDB.4.0;User ID=master;Password=masterio0;Data Source=" + GetStartupFolder() + cMdb +";Persist Security Info=True;Jet OLEDB:System database=" + GetStartupFolder() + "\Gate.mdw" )


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 249
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 26.12.14 12:36. Заголовок: Все, пошло. Haz, спа..


Все, пошло. Haz, спасибо ! СКДУ таки. На новое место переехали вот карточки и вводим

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 322
Зарегистрирован: 16.12.08
ссылка на сообщение  Отправлено: 26.12.14 12:39. Заголовок: Протестируйте "A..


Протестируйте "ADO Connection String" используя утилиты:

CScheck (http://www.softpedia.com/get/Internet/Servers/Database-Utils/ADO-Connection-String-Checker.shtml)

ADO Fielder (http://www.alexnolan.net/software/adofielder.htm); MDB Viewer Plus (http://www.alexnolan.net/software/mdb_viewer_plus.htm).

Database Connection String Tester (http://www.digitalcoding.com/free-software/database/Database-Connection-String-Tester.html). Есть и другие.

Примеры Connection Strings:

http://support.microsoft.com/KB/191754
http://www.digitalcoding.com/free-software/database/Database-Connection-String-Tester.html
http://www.connectionstrings.com/access/





Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 250
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 26.12.14 16:35. Заголовок: А как экспортировать..


А как экспортировать данные таблицы в Excel или вытащить в массив. Я так понимаю, что через SQL запрос ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 408
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.12.14 16:52. Заголовок: fil пишет: ерез SQL..


fil пишет:

 цитата:
ерез SQL запрос ?



Примерно так

#include "adordd.ch"

oConx := TOleAuto():NEW( "ADODB.connection" )
oConx:ConnectionString := cStr
oConx:Open()
oRSet := TOleAuto():NEW( "ADODB.RecordSet" )


cSQL := "SELECT * FROM EVENTS" // к примеру из таблицы EVENTS

WITH OBJECT oRSet
:CursorLocation := adUseClient
:CursorType := adOpenDynamic
:LockType := adLockOptimistic
:ActiveConnection := oConx
:Source := cSQL
:Open()
END WITH

потом с рекордсетом делай чего надо ( в массив , в эксель и пр)


PS или вот еще от туда же примерчик
// Загрузка справочника сотрудников
oConnection := ConnectMdb(GetStartupFolder() + "\config.mdb", GetStartupFolder() + "\Gate.mdw", 'User', 'Password')
cSql := "SELECT Number, Фамилия, Имя, Отчество, GroupPtr, UserPtr FROM Users GROUP BY Number, Фамилия, Имя, Отчество, GroupPtr, UserPtr ORDER BY Фамилия"
oRecordSet:=CreateObject("ADODB.Recordset")
oRecordSet:Open(cSql,oConnection,3,3) // статический курсор
If !oRecordSet:Bof .and. !oRecordSet:Eof
oRecordSet:MoveFirst()
For i := oRecordSet:AbsolutePosition TO oRecordSet:RecordCount()
? cNumber := IF( Valtype(oRecordSet:Fields["Number"]:value) == 'C', oRecordSet:Fields["Number"]:value, '0' )

? cUser := IF( Valtype(oRecordSet:Fields["Фамилия"]:value) == 'C', oRecordSet:Fields["Фамилия"]:value + ' ', '')
? cUser += IF( Valtype(oRecordSet:Fields["Имя"]:value) == 'C', oRecordSet:Fields["Имя"]:value + ' ', '')
? cUser += IF( Valtype(oRecordSet:Fields["Отчество"]:value) == 'C', oRecordSet:Fields["Отчество"]:value + ' ', '')

? cGroupPtr := if( Valtype(oRecordSet:Fields["GroupPtr"]:value) == 'N', NTOC( oRecordSet:Fields["GroupPtr"]:value), '0' )
? cUserPtr := if( Valtype(oRecordSet:Fields["UserPtr"]:value) == 'N', NTOC( oRecordSet:Fields["UserPtr"]:value), '0' )

oRecordSet:MoveNext()
end
end
oRecordSet:Close()





Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 178
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 26.12.14 18:21. Заголовок: fil пишет: А как эк..


fil пишет:

 цитата:
А как экспортировать данные таблицы в Excel или вытащить в массив. Я так понимаю, что через SQL запрос ?


Можешь посмотреть testXbr3.prg. Там , правда , все грузится в бровс, ну а из бровса уверен ты сделаешь все что захочешь :)))
Там разные варианты в том числе и SQL запрос - типа
....
cSql := ;
"SELECT COUNT(*) AS EMPLOYEES, SUM(SALARY) AS TOTSALARY FROM CUSTOMER"
oRs := FW_OpenRecordSet( cFilePath( ExeName() ) + "xbrtest.mdb" , cSql )
и т.д. :))


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 82
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет