Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.09.2009, 21:26
PavluxaF PavluxaF вне форума
Прохожий
 
Регистрация: 04.05.2009
Сообщения: 9
Репутация: 10
По умолчанию Организация доступа к БД по локальной сети

Доброго времени суток!
Есть БД на 10 000 записей (MSAccess), необходимо организовать доступ к данной БД клиентских приложений в данной локальной сети (желательно при помощи ADO).
Пожалуйста подскажите как это сделать, или где найти информацию по данной тематике (желательно с примерами).
PS Прошу прощения если данная тема уже обсуждалась.
Ответить с цитированием
  #2  
Старый 22.09.2009, 23:20
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Рекомендую перенести на MS SQL Server.
Ответить с цитированием
  #3  
Старый 22.09.2009, 23:32
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Да ладно вам, ради 10000 записей сервак подымать.
Не вижу серьезных проблем. Расшариваете общую папку на запись/чтение выбраным пользователям. Кладете в нее ваш mdb-файл. Подключаете у пользователя эту сетевую папку. Собственно все.
Основная сложность состоит в том, что-бы ваш mdb-файл администратор корректно закрыл, не оставив после сябя хвост в виде ldb-файла.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 01.10.2009, 19:53
PavluxaF PavluxaF вне форума
Прохожий
 
Регистрация: 04.05.2009
Сообщения: 9
Репутация: 10
По умолчанию

Начало понемногу получаться!
Если делать через MIDAS, то вылетает ошибка ОТКАЗАНО В ДОСТУПЕ
Подскажите в чем может быть ошибка?

СЕРВЕР: Состоит из Формы и Remote Data Module (+ через ado подключена БД)
На форме ничего нету а код Remote Data Module приведен далее:
Код:
unit Unit2;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
  Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
  DBClient, Project1_TLB, StdVcl, Provider, DB, ADODB;

type
  TServer = class(TRemoteDataModule, IServer)
    ADOConnection1: TADOConnection;
    ADOTable1: TADOTable;
    DataSetProvider1: TDataSetProvider;
  private
    { Private declarations }
  protected
    class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
  public
    { Public declarations }
  end;

implementation

{$R *.DFM}

class procedure TServer.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);
begin
  if Register then
  begin
    inherited UpdateRegistry(Register, ClassID, ProgID);
    EnableSocketTransport(ClassID);
    EnableWebTransport(ClassID);
  end else
  begin
    DisableSocketTransport(ClassID);
    DisableWebTransport(ClassID);
    inherited UpdateRegistry(Register, ClassID, ProgID);
  end;
end;

initialization
  TComponentFactory.Create(ComServer, TServer,
    Class_Server, ciMultiInstance, tmApartment);
end.


КЛИЕНТ: 

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, DBClient, MConnect, Grids, DBGrids;

type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    ClientDataSet1: TClientDataSet;
    DCOMConnection1: TDCOMConnection;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
DCOMConnection1.ComputerName:='192.168.0.1'; //это например
DCOMConnection1.ServerName:='Project1.Server';// Имя сервера
DCOMConnection1.ServerGUID:='{9BE3AC7C-FB4E-458A-BC37-BE4F20AF1FB1}';// GUID моего сервера
DCOMConnection1.Connected:=true;
MessageDlg(BoolToStr(DCOMConnection1.Connected),mtInformation,[mbOK],0);
ClientDataSet1.ProviderName:='DataSetProvider1';//имя провайдера
ClientDataSet1.Active:=true;
MessageDlg(BoolToStr(ClientDataSet1.Active),mtInformation,[mbOK],0);
end;

end.
Admin: Читаем правила и пользуемся тегами!

ПОСЛЕ НАЖАТИЯ НА КНОПКУ КЛИЕНТ ДОЛЖЕН ПОЛУЧИТЬ ДАННЫЕ, MESSAGEDLG ПОКАЗЫВАЕТ ЧТО КЛИЕНТ К СЕРВЕРУ ВРОДЕ-БЫ ПОДКЛЮЧАЕТСЯ (ИНАЧЕ СВОЙСТВА DCOMConnection1.Connected И ClientDataSet1.Active БЫЛИ = 0),
НО ВИНДА ВЫДАЕТ ОШИБКУ С НАДПИСЬЮ ОТКАЗАНО В ДОСТУПЕ!

Последний раз редактировалось Admin, 01.10.2009 в 22:38.
Ответить с цитированием
  #5  
Старый 02.10.2009, 00:56
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Разреши на компах DCOM и DTS. Не помню точно где настройка, поройся.
Ответить с цитированием
  #6  
Старый 04.10.2009, 13:02
PavluxaF PavluxaF вне форума
Прохожий
 
Регистрация: 04.05.2009
Сообщения: 9
Репутация: 10
По умолчанию

Сделал тоже самое через SocketConnection работает на ура!
Спасибо всем за обсуждение. Вопрос решен.
Ответить с цитированием
  #7  
Старый 15.11.2010, 19:10
Tpakmop Tpakmop вне форума
Прохожий
 
Регистрация: 15.11.2010
Сообщения: 2
Репутация: 10
По умолчанию

Здравствуйте.
Не могли бы вы подсказать как работать с SocketConnection к чему он подключается, хоть примерно. А то по нему нигде ничего найти не могу...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:34.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter