-
Привет всем! Подскажите как решить сей вопрос. Есть Delphi7, есть файл database.sdf - вопрос, как к нему подключиться? Суть такая, это база некой программы, которая установилсь через гадский ClickOnce, при этом она (программа) попутно установила Microsoft SQL Server Compact 3.5 SP2. Интерфейс программы крайне убогий и хотелось бы сделать свой, для работы с её базой. Поскольку опыта работы с Microsoft SQL Server у меня никакого, нарисовалась проблема подключения к этой базе. Как это делается?
-
установи нормальный MSSQL с ентерпрайз менеджером, там создай пустую базу и подключи файл. про подключение файла базу можно загуглить... много спрашивают. без менеджера можно сделать запросами, гугли (см. BOL) по sp_attach_db (нужен еще файл лога/транзакций), или sp_attach_single_file_db.
-
p.s. это был ответ на вопрос > есть файл database.sdf - вопрос, как к нему подключиться?
потому как в mssql к файлу не подключаются, нужен сервер, если сервер использовать старый/установленный программой то все несколько иначе... - берешь ADOConnection и тыкаешь там на кнопочки прямо в дизайн тайм... интуитивно понятно. :)
-
> берешь ADOConnection и тыкаешь там на кнопочки прямо в дизайн > тайм
Дык я туда и дёрнулся, а кого там из списка выбрать?
-
-
> или MS OLEDB SQL или SQL Native Client
Нет там такого прова. Везде пишут "выберите Microsoft.SQLSERVER.CE.OLEDB.3.5", но нет таких провайдеров. Что делать, как установить это OLEDB?
-
> Нет там такого прова
там это где?
> с ODBC лучше не связываться.
ну тут я очень поспорю, когда речь идет о не традиционных базах данных
-
> Везде пишут "выберите Microsoft.SQLSERVER.CE.OLEDB.3.5", http://connectionstrings.com/Providers/microsoft-sqlserver-ce-oledb-3-5> но нет таких провайдеров. Что делать, как установить это OLEDB? должен быть... MS OLEDB SQL ставится с системой SQL Native Client ставится с сервером/можно отдельно этот тоже должен поставится с сервером, либо взять с мелкософта. > ну тут я очень поспорю, когда речь идет о не традиционных базах данных речь о mssql.
-
-
> но нет таких провайдеров. кстати вариант "нету", потому что стоит 64 разрядная версия... а D7 32х разрядная. и ставятся отдельно. 32х разрядная прога естественно грузит соответствующих провайдеров.
-
+++ довольно странный сервер, хоть и от мелкософт. поставил (кстати уже есть SP1 для вчерашней ссылки на 4.0), хотел проверить, провайдера нет... не отображается вернее (из-за XP? или отсутствия net? очень уж там на него все завязано. не знаю. разбираться... нафига? не используя). базу создать удалось, вот по этому коду http://stackoverflow.com/questions/10949745/how-to-create-sql-server-ce-database-in-delphiподключится тоже, так (прямо указав строку подключения, пусть не видит) Provider=Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=D:\Bar.sdf правда сразу получил ошибку, на получении "схем" EOleException : Возникли ошибки. [,,,,,] т.е. посмотреть структуру таблиц/полей/индексов не удалось, что-то мелкософт поменял (наверное нужен ИХ менеджер, если разбирать чужую базу, понадобится) но создание таблиц, запросы работают. ограничения по сравнению с mssql наверняка есть (разные назначения, те...), но я на нескольких запросах их не встретил.
-
> довольно странный сервер, хоть и от мелкософт.
Вот и я о том же. Завтра попробую руками прописать, как ты сказал. А структуру я через CompactView вижу. (кстати, подключается же эта программа к этой базе без проблем).
-
> Завтра попробую руками прописать обрати внимание на версию... она почему то входит в название провайдера, и если стоит не та версия то не подключится... а есть уже 3.0, 3.5 и 4.0. и т.к. его не видно в списке то...
|