|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Организация доступа к БД по локальной сети Доброго времени суток! Есть БД на 10 000 записей (MSAccess), необходимо организовать доступ к данной БД клиентских приложений в данной локальной сети (желательно при помощи ADO). Пожалуйста подскажите как это сделать, или где найти информацию по данной тематике (желательно с примерами). PS Прошу прощения если данная тема уже обсуждалась. | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Рекомендую перенести на MS SQL Server. | 
| 
			 
			#3  
			
			
			
			
		 | ||||
| 
 | ||||
|   Да ладно вам, ради 10000 записей сервак подымать.  Не вижу серьезных проблем. Расшариваете общую папку на запись/чтение выбраным пользователям. Кладете в нее ваш mdb-файл. Подключаете у пользователя эту сетевую папку. Собственно все. Основная сложность состоит в том, что-бы ваш mdb-файл администратор корректно закрыл, не оставив после сябя хвост в виде ldb-файла. | 
| 
			 
			#4  
			
			
			
			
		 | |||
| 
 | |||
|   Начало понемногу получаться! Если делать через 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.ПОСЛЕ НАЖАТИЯ НА КНОПКУ КЛИЕНТ ДОЛЖЕН ПОЛУЧИТЬ ДАННЫЕ, MESSAGEDLG ПОКАЗЫВАЕТ ЧТО КЛИЕНТ К СЕРВЕРУ ВРОДЕ-БЫ ПОДКЛЮЧАЕТСЯ (ИНАЧЕ СВОЙСТВА DCOMConnection1.Connected И ClientDataSet1.Active БЫЛИ = 0), НО ВИНДА ВЫДАЕТ ОШИБКУ С НАДПИСЬЮ ОТКАЗАНО В ДОСТУПЕ! Последний раз редактировалось Admin, 01.10.2009 в 22:38. | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   Разреши на компах DCOM и DTS. Не помню точно где настройка, поройся. | 
| 
			 
			#6  
			
			
			
			
		 | |||
| 
 | |||
|   Сделал тоже самое через SocketConnection работает на ура! Спасибо всем за обсуждение. Вопрос решен. | 
| 
			 
			#7  
			
			
			
			
		 | |||
| 
 | |||
|   Здравствуйте. Не могли бы вы подсказать как работать с SocketConnection к чему он подключается, хоть примерно. А то по нему нигде ничего найти не могу... |