Можно ли записать соединение и открыть базу данных SQL Compact 3.5 из MS Access 2003? Я хочу иметь возможность использовать MS Access 2003 для управления данными в базе данных SQL Compact 3.5. Если это возможно, то какие операторы будут использоваться для открытия базы данных?





Хотя я не пробовал это специально с SQL Compact, подключение к серверу должно быть стандартным:
Запишите строку подключения примерно так:
MyConnectionString = "Provider = SQLOLEDB.1; Integrated Security = SSPI; Persist Security Info = False; Initial Catalog = YourDatabaseName; Data Source = YourSQLServerInstanceName"
Эта строка написана для контекста «интегрированной безопасности». Если вы хотите изменить его для контекста безопасности SQL, проверьте здесь, чтобы обновить строку. В идеале эту строку следует объявить в вашем коде как общедоступную переменную.
Как только это будет сделано, вы можете открыть набор записей ADODB и начать манипулировать им:
public sub connectionTest
Dim activeConnection as ADODB.connection, _
activeRecordset as ADODB.recordset
Set activeConnection = New ADODB.connection
activeConnection.connectionString = myCOnnectionString
activeConnection.open
set activeRecordset = New ADODB.recordset
'this will open a read-only recordset'
activeRecordset.open _
"SELECT * FROM myTableName", _
activeConnection, _
adOpenStatic, _
adLockReadOnly
if activeRecordset.EOF and activeRecordset.BOF then
debug.print "No records in this table"
else
activeRecordset.moveFirst
do while not activeRecordset.EOF
debug.print activerecordset.fields("myFieldName").value
activeRecordset.moveNext
loop
endif
activeRecordset.close
set activeRecordset = nothing
activeConnection.close
set activeConnection = nothing
end sub
Это всего лишь идея, и я не могу подтвердить, что она будет работать, но, учитывая, что в SQL Compact отсутствует драйвер ODBC и у вас не может быть связанных таблиц, возможно, вы можете использовать строку подключения OLEDB для SQL Compact в качестве строки подключения источника. сохраненного QueryDef в Access. Если вы можете заставить это работать, вы можете создать сохраненный QueryDef для каждой таблицы, а затем использовать их, как если бы запросы были связанными таблицами.
Я не могу протестировать его на своей машине, потому что единственный поставщик OLEDB, который я установил, - это Jet, а Access, похоже, это не нравится.
Но, возможно, стоит попробовать. Возможно, это не сработает, так как я нигде не могу найти, чтобы кто-нибудь делал это в Access. Но я действительно не понимаю, почему это не должно работать.
Опять же, я мог просто ошибаться.