(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Переход от MDB к ADP

1. Подготовка таблиц и запросов к экспорту


  • Наличие первичного ключа
    Просмотрите внимательно все имеющиеся таблицы и в случае отсутствия в них первичного ключа обязательно создайте его. Если импорт / экспорт прошел криво - и первичный ключ не был перенесен - создайте его вручную.
    Таблицы без первичного ключа на MSSQL - необновляемые, т.е. вы не сможете ни поместить туда данные, ни их редактировать в режиме таблицы из Аксесса + множество других проблем (проблемы с синхронизацией данных)
  • Штамп Времени
    После переноса таблиц добавьте во все таблицы поле с типом timestamp
    Наличие этого поля и первичного ключа принципиально меняет методику обновления данных объектами ADO (которые используются в.т.ч и аксессом) что решает некоторые проблемы и существенно сокращает сетевой траффик команд обновления данных.(однако в некоторых случаях наличие этого поля в источнике данных формы может привести к сложностям типа "Конфликт версии данных" - данные изменены другим пользователем)
  • Пустые значения в полях недопускающих NULL
    Проверьте что во всех таблицах где стоит это ограничение данные не содержат пуcтых полей (в аксессе такое бывает) при экспорте будет ошибка - в зависимости от выбранного инструмента экспорта либо строка таблицы не будет перенесена, либо не будет экспортировано ограничение, либо программа не закончит перенос. Это наиболее часто встречающаяся проблема
  • Размерность связанных полей
    проверьте размер связанных полей - если связь по текстовому в одной таблице размер 50 а в другой 100 то связь в MDB работает , но при экспорте будет ошибка. По возможности следует избегать связей по текстовым полям так как это в любом случае приводит к потере быстродействия, как правило, всегда можно добавить в каждую из связанных таблиц числовое поле и сделать связь именно по нему
  • Диапазон дат
    Проверьте значения в полях таблиц имеющих тип дата. Дата не должна быть раньше чем 1 января 1900 года.
  • Битовые / логические поля
    Проверьте что если поле типа bit и допускает нулл в таблице должно присутствовать поле таймштамп. Иначе при использовании связки сервера + MDB c линкованными таблицами будут проблемы с обновлением данных.

    Имена таблиц и запросов

  • нельзя, чтоб название таблицы или запроса начиналось решеткой (#) (таблицы начинающиеся c # на сервере являются временными, некоторые средства переноса видимо об этом не догадываются)
  • нежелательно чтоб название таблицы начиналось цифрами
  • не рекомендую использовать русские названия таблиц и запросов (возможны проблемы при реализации конкретных клиентских программ)
  • не допускается использование кавычек в названиях

    Примечание: сведения об ошибках при импорте данных собраны из различных источников, при использовании мастеров импорта и экспорта SQL-Сервера и MSACCESS с установленными различными сервис-паками.

    В любом случае обязательно используйте последние версии программного обеспечения c установленными сервис-паками.

    2.Что именно придется переделывать

  • Итоговые поля на формах
    Если Вы привыкли использовать функцию =SUM() для отображения итогов:
    этот подход неприемлем в проектах ADP - заменой ему может послужить программное вычисление итоговых значений Решение1 Решение2

    Примечание: Итоги в формах могут и работать MSAccess XP и MSAccess 2003 (с установленными последними версиями драйверов доступа к данным )- в простейших конструкциях - без возможности прменения фильтра формы

  • Обновление данных на форме методом Refresh
    В проектах обновление формы методом Refresh проявляет себя так же как и Requery.
  • В запросах проектов ADP нельзя указывать условие так как это делалось в MDB:

    RecordSource:

    "Select * from Mytable where ID = Forms!Главная!ID"  
     

    Это не будет работать потому что запросы в ADP выполняются на стороне сервера. сервер представления не имеет о Forms!Главная!...

    Есть несколько вариантов решений:

  • программно вычислять и задавать строку запроса:
      Me.Подчиненная.Form.RecordSource = "Select * from Mytable where ID = " & me.ID 
     
  • Использовать в качестве источника данных хранимую процедуру с параметрами подробнее
  • Использовать знак вопроса в качестве параметра к источнику данных и указывать значение в свойстве входные параметры
    Свойство RecordSource: "Select * from Mytable where ID = ? and uid = ?"
    свойство InputParameters: " ? = ID, ? = UID "
  • Задать источник данных следующим образом:
    RecordSource: Select * from Mytable where DateFrom > @Forms![ФОРМА]![ДАТАС] and DateFrom <= @Forms![ФОРМА]![ДАТАПО]

    DAO
    Лучше отказаться от DAO. Замена для него ADO + ADOX.
    рекордсет переделывают так:

     ' dao должно быть прописано в references - ссылках (свойства редактора VB)  
      Dim rst Аs DAO.Recordset Set rst = currentdb.openrecordset "tablename"  
      rst.edit  
      rst!field1="string"  
      rst.update  
      rst.close  
      set rst = Noting  
      
     
     'adodb должно быть прописано в references - ссылках (свойства редактора VB)  
    Dim rst Аs New ADODB.Recordset   
    rst.open "tablename", CurrentProject.Connection, adOpenKeyset, adLockOptimistic   
     ' для начала используйте такую конструкцию она обеспечивает 
    наибольшее число операций над рекордсетом ' rst.edit - не требуется rst!field1="string" rst.update rst.close set rst = Noting

    Отчеты


    Клиентский фильтр отчета

    Следует обратить внимание, что клиентский фильтр отчета влияет на число отображаемых записей, но не влияет на значения Итоговых полей в примечаниях, разделов полученных с помощью агрегатных функций : =Sum(), =Count() и.т.д.

    Рекомедую вынести фильтр в условие источника данных отчета

  • Ссылки по теме


     Распечатать »
     Правила публикации »
      Написать редактору 
     Рекомендовать » Дата публикации: 04.12.2007 
     

    Магазин программного обеспечения   WWW.ITSHOP.RU
    Microsoft Windows Professional 10, Электронный ключ
    Microsoft 365 Business Standard (corporate)
    Microsoft 365 Business Basic (corporate)
    Microsoft 365 Apps for business (corporate)
    Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
     
    Другие предложения...
     
    Курсы обучения   WWW.ITSHOP.RU
     
    Другие предложения...
     
    Магазин сертификационных экзаменов   WWW.ITSHOP.RU
     
    Другие предложения...
     
    3D Принтеры | 3D Печать   WWW.ITSHOP.RU
     
    Другие предложения...
     
    Новости по теме
     
    Рассылки Subscribe.ru
    Информационные технологии: CASE, RAD, ERP, OLAP
    Безопасность компьютерных сетей и защита информации
    Новости ITShop.ru - ПО, книги, документация, курсы обучения
    Программирование на Microsoft Access
    CASE-технологии
    Каждый день новые драйверы для вашего компьютера!
    Новые программы для Windows
     
    Статьи по теме
     
    Новинки каталога Download
     
    Исходники
     
    Документация
     
     



        
    rambler's top100 Rambler's Top100