Ir al contenido


Foto

Error con conexion a SQL mediante ini


  • Por favor identifícate para responder
8 respuestas en este tema

#1 marthamelo

marthamelo

    Advanced Member

  • Miembros
  • PipPipPip
  • 106 mensajes
  • LocationA Coruña

Escrito 10 julio 2011 - 08:29

Hola, esta vez tengo problemas para conectar con la bd sql. Les explico, tengo una aplicación que conecta con una bd hecha en sql ; este gestor se conecta mediante un ADoconection  el cual a su vez lo hace via archivo ini, mi aplicación esta inatalada en el servidor  esta compartida y atreves de la red los clientes se conectan a ella, copiando  siempre el archivo ini en el ordenador del cliente. Mi problema es que no puedo conectar con la BD desde los clientes he probado  con el nombre del servidor y también con la ip y no me funciona si alguien puede ayudarme por favor me urge mucho pues esto ya debería estar funcionado  gracias les pongo los dos ini que he probado y el código Delphi para la conexión gracias.
archivo ini con ip
[ini][ConfigDB]
User=sa
password=4637hjgf
Server=192.168.3.110\SQL2005
BaseDatos=conexion[/ini]

archivo ini con nombre
[ini][ConfigDB]
User=sa
password=4637hjgf
Server=JOSESERVER\SQL2005
BaseDatos=conexion[/ini]

codigo delphi para la conexion en el create del datamodule donde estan los componentes


delphi
  1. procedure FormCreate(Sender: TObject);
  2. private
  3.     ini:TIniFile;
  4.   public
  5.     { Public declarations }
  6.   end;
  7.  
  8. var
  9.   Form1: TForm1;
  10. const
  11.   STR_CONN = 'Provider=SQLOLEDB.1;Password=%s;Persist Security Info=True;' +
  12.             'User ID=%s;Initial Catalog=%s;Data Source=%s';
  13.   CONFIG_SECTION = 'ConfigDB';
  14.   STR_EMPTY = '';
  15.  
  16. Implementation
  17. {$R *.dfm}
  18.  
  19. procedure TForm1.FormCreate(Sender: TObject);
  20.  
  21. var
  22.   user, password, server, BD: string;
  23. begin
  24.   ADOConnection1.Close;
  25.   // Cargar el fichero INI
  26.   ini := TIniFile.Create('conexion.ini');
  27.   // proteccion para liberar
  28. try
  29.     // Cargar datos
  30.     USer:= ini.ReadString(CONFIG_SECTION, 'User', STR_EMPTY);
  31.     Password:= ini.ReadString(CONFIG_SECTION, 'password', STR_EMPTY);
  32.     Server := ini.ReadString(CONFIG_SECTION, 'Server', STR_EMPTY);
  33.     BD := ini.ReadString(CONFIG_SECTION, 'BaseDatos', STR_EMPTY);
  34.  
  35.     // Intentar conectar
  36.     ADOConnection1.ConnectionObject.ConnectionString :=
  37.       Format(STR_CONN, [Password, User, BD, Server]);
  38.  
  39.     try
  40.       ADOConnection1.Open;
  41.       ADOTable1.Active:=true;
  42.       ADOQuerymaquinaria2.Active:=true;
  43.       ADOQuerycategoria1.Active:=true;
  44. except
  45.       on E:Exception do begin
  46.         // Error
  47.         form1.lblErr.Visible := True;
  48.         form1.lblErr.Caption := E.Message;
  49.       end;
  50.     end;
  51.   finally
  52.     FreeAndNil(ini);
  53.   end;
  54. end;


  • 0

#2 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 10 julio 2011 - 08:53

Hola
Desconozco sqlserver pero supongo que la BD tendra un nombre que no debe ser sql2005 ?.
Tambien me imagino que la BD esta en algun directorio o ubicación algo como C:\TuCarpeta\tuBD.
Para que el sistema encuentre la BD deberia de darse la direccion exacta de donde esta.
En mi caso con BD Firebird lo hago asi en el archivo INI.
192.168.1.178:C:\Micarpetadelservidor\MiBD.FDB
Saludos


  • 0

#3 marthamelo

marthamelo

    Advanced Member

  • Miembros
  • PipPipPip
  • 106 mensajes
  • LocationA Coruña

Escrito 10 julio 2011 - 09:13

hola carral
\SQL2005, es la instancia sql  en la cual se encuantra la bd que llamo en el siguiente renglon
  • 0

#4 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 10 julio 2011 - 09:17

Hola
No entiendo.
Saludos
  • 0

#5 jdepaz

jdepaz

    Advanced Member

  • Miembros
  • PipPipPip
  • 264 mensajes
  • LocationMedellín Colombia

Escrito 10 julio 2011 - 01:56

Hola buen día,

Podrías enviarnos el código de error que se genera cuando intentas acceder?

1. Has probando la conexión desde un cliente con alguna herramienta SQL Cliente?
2. En el administrador de SQL Server, en la parte de los servicios, tienes habilitadas las conexiones TCP/IP con su respectivo puerto?

Saludos

  • 0

#6 marthamelo

marthamelo

    Advanced Member

  • Miembros
  • PipPipPip
  • 106 mensajes
  • LocationA Coruña

Escrito 10 julio 2011 - 02:30

Hola jdepaz  te cuento el error es, que no puede ejecutar acciones sobre un adoquery cerrado, he intentado conectarme mediante el sql management y no puedo, estoy más que segura que es el sql.  pero me surge el problema que localmente no puedo conectarme con la variante ip. El programa esta instalado en el servidor y los clientes acceden mediantes unidades de red 
  • 0

#7 marthamelo

marthamelo

    Advanced Member

  • Miembros
  • PipPipPip
  • 106 mensajes
  • LocationA Coruña

Escrito 10 julio 2011 - 02:33

Explico más en el ordenador donde lo desarrolle funciona bien con la opción de la ip la cual he utilizado otras veces 
  • 0

#8 jdepaz

jdepaz

    Advanced Member

  • Miembros
  • PipPipPip
  • 264 mensajes
  • LocationMedellín Colombia

Escrito 10 julio 2011 - 02:42

Hola,

creo que podrías ser un poco mas explícita y darnos mas detalles, quisiera saber entonces:

1. Es error de conexión? o Es error de consulta?
2. Según dices, "funciona bien con la opción de la ip.." entonces veo que es problema de conexión.

Ahora bien, en la PC donde desarrollaste tienes instalado el motor SQL Server 2005? o te has conectado de esta PC hacia el servidor?

Otra pregunta: esta aplicación ha trabajado antes con este ambiente, o es un desarrollo nuevo y la forma de conexión es nueva?

Saludos

PD: tienes activada la conexión TCP/IP en el administrador de SQL Servero 2005?

  • 0

#9 Jose_Augusto

Jose_Augusto

    Member

  • Miembros
  • PipPip
  • 35 mensajes

Escrito 11 julio 2011 - 11:54

Hola, en tiempo de diseño puedes probar tu conexion, los mismos parámetros que pones en el ini, puedes probarlos en el componente para la conexion ADOConnection.

por lo que leo en el hilo tienen razon nuestros amigos,

1.- quizás no tienes habilitada la opcion de conexion TCP/IP en la configuración de SQL Server. me ha pasado que en ocasiones la forma en que se instaló el servidor no responde por nombre solo por ip, no es tu caso puesto que ya has probado con la ip directo, tambien revisa si solo con el nombre del servidor o la ip funciona, en ocasiones sobre lainstalación asi se define, no es necesario el nombre de la instancia de sql server.
2.- con que usuario estas tratando de conectarte, si creaste usuarios, se los asignaste a la base de datos?.
3.- yo te recomiendo que instales el management studio en una de las computadoras cliente, para que puedas revisar si es problema del servidor o de la aplicación que estas desarrollando.
4.- en la computadora donde estas poniendo la aplicación ya revisaste que tengas los drivers de sql server sobre todo de la versión que estas utilizando. revisa en la lista de drivers odbc si te aparece.

  • 0




IP.Board spam blocked by CleanTalk.