Bueno, mi pregunta tal vez es obvia pero no se por que no sale. Estoy tratando de hacer mi primer servidor DataSnap. Para ello use el mismo Wizard, y use como ServerMethods el TDataModule.
Uso Como Base de Datos, por ahor Interbase, ya que quiero pasar a Firebird. En el ServerMethods, coloque el conector de Base un SQLConnection, y lo configure a la base de datos que utilizo. Conecta y todo bien.
Para complicarmela la existencia, el form principal del servidor, intento hacer que el user configure el path de la base de datos, pues puede estar en otra ubicacion de lo habitual. Para ello pense un archivo .ini y guardarla. El tema es que desde el FormPrincipal, no tengo acceso a los componetes incrustados el el ServerMethods, si bien la unidad esta declara en el uses.
Esto es parte del Codigo:
procedure TFormServidor.BitBtn1Click(Sender: TObject); begin TServerMethods.SQLConnection.DriverName:='INTRBASE'; TServerMethods.SQLConnection.Params.Add('Database='+edPathBase.Text); TServerMethods.SQLConnection.Params.Add('RoleName=RoleName'); TServerMethods.SQLConnection.Params.Add('User_Name=sysdba'); TServerMethods.SQLConnection.Params.Add('Password=regulador'); TServerMethods.SQLConnection.Params.Add('ServerCharSet='); TServerMethods.SQLConnection.Params.Add('SQLDialect=1'); TServerMethods.SQLConnection.Params.Add('ErrorResourceFile='); TServerMethods.SQLConnection.Params.Add('LocaleCode=0000'); TServerMethods.SQLConnection.Params.Add('BlobSize=-1'); TServerMethods.SQLConnection.Params.Add('CommitRetain=False'); TServerMethods.SQLConnection.Params.Add('WaitOnLocks=True'); TServerMethods.SQLConnection.Params.Add('Interbase TransIsolation=ReadCommited'); TServerMethods.SQLConnection.Params.Add('Trim Char=False'); try TServerMethods.SQLConnection.Connected:=True; except on e: Exception do begin Application.MessageBox(pchar (e.ClassName + ';' + e.Message),'error',MB_ICONSTOP); ShowMessage('Verificar el Alias de la Base de Datos.....'); TServerMethods.SQLConnection.Connected:=False; end; end; end;
Cuando intento compilar sale esto:
[dcc32 Error] UServidor.pas(37): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(37): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(38): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(38): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(39): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(39): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(40): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(40): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(41): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(41): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(42): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(42): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(43): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(43): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(44): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(44): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(45): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(45): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(46): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(46): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(47): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(47): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(48): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(48): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(49): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(49): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(50): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(50): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(52): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(52): E2066 Missing operator or semicolon
[dcc32 Error] UServidor.pas(58): E2096 Method identifier expected
[dcc32 Error] UServidor.pas(58): E2066 Missing operator or semicolon
[dcc32 Fatal Error] ServidorDS.dpr(5): F2063 Could not compile used unit 'UServidor.pas'
Failed
Elapsed time: 00:00:00.6
en la decalaracion del Servidor esta asi:
unit UServidor; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons,IniFiles, UServerContainer,UServerMethods; type TFormServidor = class(TForm) lbMensaje: TLabel; edPathBase: TEdit; OpenDialog1: TOpenDialog; spDir: TSpeedButton; BitBtn1: TBitBtn; btIniciarServicio: TBitBtn; procedure spDirClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure btIniciarServicioClick(Sender: TObject); private { Private declarations } public { Public declarations } ArchivoIni:TIniFile; end; var FormServidor: TFormServidor; implementation //uses UServerMethods;
Que hay de bien que estoy haciendo mal????
Gracias
Luis Roldan
Mar del Plata
Argentina