Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2007, 14:27   #1
Nowichok
Пользователь
 
Регистрация: 23.11.2006
Сообщений: 53
По умолчанию Работа с БД Access

Есть задача написать программу, работающую с БД Access.
Есть опыт работы с БД Paradox, но это, как я понимаю, совсем не то.
Вопросов уже набежала куча, но начну по порядку и с начала:

1) БД можно открыть с помощью BDE или с помощью ADO. В чём разница ? Я о скорости открытия и работы с БД (если она примитивная, 3-4 таблицы). И где-то читал, что после Office2000 BDE не открывает БД Access.
2) Мне бы сделать таК, чтобы работать с БД через мою программу можно было на любом компьютере. А то когда писал БД Paradox, то для работы требовалась установленная Delphi.
Nowichok вне форума Ответить с цитированием
Старый 27.01.2007, 15:12   #2
abakumov
 
Регистрация: 06.01.2007
Сообщений: 9
Подмигивание

Цитата:
Сообщение от Nowichok Посмотреть сообщение
Есть задача написать программу, работающую с БД Access.
Есть опыт работы с БД Paradox, но это, как я понимаю, совсем не то.
Вопросов уже набежала куча, но начну по порядку и с начала:

1) БД можно открыть с помощью BDE или с помощью ADO. В чём разница ? Я о скорости открытия и работы с БД (если она примитивная, 3-4 таблицы). И где-то читал, что после Office2000 BDE не открывает БД Access.
2) Мне бы сделать таК, чтобы работать с БД через мою программу можно было на любом компьютере. А то когда писал БД Paradox, то для работы требовалась установленная Delphi.
Ну по первому вопросу я не знаю, не вдовался в подробности прочитал что, желательно работать с ADO и всегда с Access использую ADO, а вот по второму: чтобы база работала на любом компе надо в компоненте ADOConect прописывать путь исходя из нахождения exe-шника или хранить файл БД в одной папке с ним и прописывать просто имя БД! а если есть время качни с библиотеки книгу "Библия делфи" в главе Базы данных описано пара примеров как работать с БД Access и отчетностью!
abakumov вне форума Ответить с цитированием
Старый 27.01.2007, 16:29   #3
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
Сообщение

Цитата:
Сообщение от Nowichok Посмотреть сообщение
1) БД можно открыть с помощью BDE или с помощью ADO. В чём разница ? Я о скорости открытия и работы с БД (если она примитивная, 3-4 таблицы). И где-то читал, что после Office2000 BDE не открывает БД Access.
подключаемся так:
нужно только правильно сформировать строку ConnectionString
компонента TAdoConnection:
Код:
cs= 'Provider=%s;User ID=Admin;Data Source=%s;Mode=Share Deny None;'+
  'Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'+
  'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;'+
  'Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;'+
  'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'+
  'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don'+#39+
  't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
подставляем c помощью Format() параметры
Provider = 'Microsoft.Jet.OLEDB.4.0'
4.0 - версия для Win 2000 & XP

и Data Source
= путь до базы.

также используются TADOConnection и
'обычный' TdataSource

Цитата:
Сообщение от Nowichok Посмотреть сообщение
2) Мне бы сделать таК, чтобы работать с БД через мою программу можно было на любом компьютере. А то когда писал БД Paradox, то для работы требовалась установленная Delphi.
на самом деле нужен Borland Database Engine (BDE) установленный,
т.е. не весь Delphi
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 27.01.2007, 16:32   #4
Nowichok
Пользователь
 
Регистрация: 23.11.2006
Сообщений: 53
По умолчанию

Цитата:
Сообщение от Virtson Посмотреть сообщение
подключаемся так:
нужно только правильно сформировать строку ConnectionString
компонента TAdoConnection:
А можно неправильно сформировать строку? Там же пошагово предлагается всё выбрать, вроде понятным языком. Хотя я эти нюансы не знаю.

Цитата:
Сообщение от Virtson Посмотреть сообщение
на самом деле нужен Borland Database Engine (BDE) установленный,
т.е. не весь Delphi
Вот знал, что часть Delphi нужна, а что именно - нет.
Спасибо за инфу
Завтра буду разбираться дальше, вопросы явно будут )

Последний раз редактировалось Nowichok; 27.01.2007 в 16:56.
Nowichok вне форума Ответить с цитированием
Старый 27.01.2007, 16:40   #5
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
Сообщение

Цитата:
Сообщение от abakumov Посмотреть сообщение
чтобы база работала на любом компе надо в компоненте ADOConect прописывать путь исходя из нахождения exe-шника или хранить файл БД в одной папке с ним и прописывать просто имя БД!
это было правильно сказано,
а я пытался пояснить, как сделать это Программно.


во время подключения TAdoConnection.Active:= false;
затем формируем свойство ConnectionString
затем -> активируем и работаем.
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 31.01.2007, 01:36   #6
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Цитата:
Сообщение от Nowichok Посмотреть сообщение
А можно неправильно сформировать строку? Там же пошагово предлагается всё выбрать, вроде понятным языком. Хотя я эти нюансы не знаю.
Конечно, если формировать через диалоговое окно - трудно ошибиться... А если прописывать "на лету"... Но в принципе главное внимательность
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Старый 31.01.2007, 12:06   #7
Nowichok
Пользователь
 
Регистрация: 23.11.2006
Сообщений: 53
По умолчанию

Будем внимательны. Спс. )
Назрел ещё вопрос:

- Как организовать сортировку по какому-либо полю (по увеличению/по уменьшению). Т.е. нажал вверху над над полем на кнопку - и вся таблица отсортировалась по этому полю. Читал, что возможна сортирвка, но толком, как всегда, не написано.
Nowichok вне форума Ответить с цитированием
Старый 31.01.2007, 12:13   #8
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Сортировка проводиться через SOL запрос в компоненте
ADOQuery1 примерно так:

Код:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select *');
ADOQuery1.SQL.Add('from Имя таблицы');
ADOQuery1.SQL.Add('order by  имя поля для сортировки');
ADOQuery1.Active:=true;
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Старый 31.01.2007, 12:21   #9
Nowichok
Пользователь
 
Регистрация: 23.11.2006
Сообщений: 53
По умолчанию

Вот, нашёл в дебрях старой книжки :
"Есть определённая специфика в механизме сортировки записей ADO-набора. Для сортировки в свойство Sort помещают список полей сортировки, разделённых запятыми. Каждое поле может дополнительно снабжаться признаками ASCENDING (ASC) или DESCENDINC (DESC) для указания соответственно нисходящего или восходящего порядка сортировки, например:
AdoQuery1.Sort:='LastName ASC, DateDue DESC';
.....
"
Ещё не проверял, но хотелось бы узнать, кака здесь идёт сортировка? Т.е. можно одное полве по увеличению отсортироать ,а другое по уменьшению?

Хотя мне всё равно так не надо делать
Nowichok вне форума Ответить с цитированием
Старый 31.01.2007, 12:36   #10
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

да, "поле по увеличению отсортироать ,а другое по уменьшению"

но первое - 'самое главное', после сортировки по нему сортируется по остальным .. в порядке указания
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с анимацией в ACCESS kuk132 Microsoft Office Access 1 17.07.2008 14:07
работа с Access One.Love БД в Delphi 6 02.06.2008 23:46
работа базы данных Access через интернет. Леонид Microsoft Office Access 6 27.05.2008 08:54
Access/ADO Anton_S БД в Delphi 2 26.05.2008 08:24
Delphy и Access.вводя инфу во вторичный файл Access, она отражалась в первом ADOTable Lev БД в Delphi 0 11.11.2007 12:14