Конференция "Базы" » Подключение к базе *.sdf [D7]
 
  • Труп Васи Доброго © (29.09.12 23:15) [0]
    Привет всем! Подскажите как решить сей вопрос. Есть Delphi7, есть файл database.sdf - вопрос, как к нему подключиться? Суть такая, это база некой программы, которая установилсь через гадский ClickOnce, при этом она (программа) попутно установила Microsoft SQL Server Compact 3.5 SP2. Интерфейс программы крайне убогий и хотелось бы сделать свой, для работы с её базой. Поскольку опыта работы с Microsoft SQL Server у меня никакого, нарисовалась проблема подключения к этой базе. Как это делается?
  • sniknik © (29.09.12 23:34) [1]
    установи нормальный MSSQL с ентерпрайз менеджером, там создай пустую базу и подключи файл. про подключение файла  базу можно загуглить... много спрашивают.
    без менеджера можно сделать запросами, гугли (см. BOL) по sp_attach_db (нужен еще файл лога/транзакций), или sp_attach_single_file_db.
  • sniknik © (29.09.12 23:40) [2]
    p.s. это был ответ на вопрос
    > есть файл database.sdf - вопрос, как к нему подключиться?

    потому как в mssql к файлу не подключаются, нужен сервер, если сервер использовать старый/установленный программой то все несколько иначе... - берешь ADOConnection и тыкаешь там на кнопочки прямо в дизайн тайм... интуитивно понятно. :)
  • Труп Васи Доброго © (30.09.12 00:02) [3]

    > берешь ADOConnection и тыкаешь там на кнопочки прямо в дизайн
    > тайм

    Дык я туда и дёрнулся, а кого там из списка выбрать?
  • sniknik © (30.09.12 00:35) [4]
    или MS OLEDB SQL или SQL Native Client. с ODBC лучше не связываться.
    http://connectionstrings.com/
  • Труп Васи Доброго © (30.09.12 00:58) [5]

    > или MS OLEDB SQL или SQL Native Client

    Нет там такого прова. Везде пишут "выберите Microsoft.SQLSERVER.CE.OLEDB.3.5", но нет таких провайдеров. Что делать, как установить это OLEDB?
  • Palladin © (30.09.12 01:14) [6]

    > Нет там такого прова

    там это где?


    > с ODBC лучше не связываться.

    ну тут я очень поспорю, когда речь идет о не традиционных базах данных
  • sniknik © (30.09.12 01:48) [7]
    > Везде пишут "выберите Microsoft.SQLSERVER.CE.OLEDB.3.5",
    http://connectionstrings.com/Providers/microsoft-sqlserver-ce-oledb-3-5

    > но нет таких провайдеров. Что делать, как установить это OLEDB?
    должен быть...
    MS OLEDB SQL ставится с системой
    SQL Native Client ставится с сервером/можно отдельно
    этот тоже должен поставится с сервером, либо взять с мелкософта.

    > ну тут я очень поспорю, когда речь идет о не традиционных базах данных
    речь о mssql.
  • sniknik © (30.09.12 01:50) [8]
  • sniknik © (30.09.12 01:55) [9]
    > но нет таких провайдеров.
    кстати вариант "нету", потому что стоит 64 разрядная версия... а D7 32х разрядная. и ставятся отдельно. 32х разрядная прога естественно грузит соответствующих провайдеров.
  • sniknik © (30.09.12 10:58) [10]
    +++
    довольно странный сервер, хоть и от мелкософт. поставил (кстати уже есть 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 наверняка есть (разные назначения, те...), но я на нескольких запросах их не встретил.
  • Труп Васи Доброго © (30.09.12 14:47) [11]

    > довольно странный сервер, хоть и от мелкософт.

    Вот и я о том же. Завтра попробую руками прописать, как ты сказал. А структуру я через CompactView вижу. (кстати, подключается же эта программа к этой базе без проблем).
  • sniknik © (30.09.12 15:08) [12]
    > Завтра попробую руками прописать
    обрати внимание на версию... она почему то входит в название провайдера, и если стоит не та версия то не подключится... а есть уже 3.0, 3.5 и 4.0.
    и т.к. его не видно в списке то...
 
Конференция "Базы" » Подключение к базе *.sdf [D7]
Есть новые Нет новых   [119474   +83][b:0][p:0.001]