Ir al contenido


Foto

Error de conexion delphi 7 Sql server 2005 express


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

#21 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 27 julio 2011 - 09:11

Hola
Solo cambia el path.
En el mismo directorio que el exe (el programa).
En el evento Oncreate del Datamodule o del form principal.
Se tiene que generar el codigo que llame al archivo INI y conecte con la BD.
Saludos


saludos caral...

nunca he hecho esto antes, y pues te agradezco la ayua a ti y a todos los compañeros que me han ayudado, gracias a esta web pude finalizar mi proyecto hasta el nivel que el profesor me lo exigia....

pero quiero fortalecer el software y quiero pues resolver este problema (que se desconfigura el soft cuando lo instalo en otra pc que no es la pc en la que lo diseñé)...

entonces cual sería el código ?
  • 0

#22 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 29 julio 2011 - 11:34

Alguien me ayuda con este parte de mi pequeño soft ?
  • 0

#23 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 12 agosto 2011 - 11:28

Cómo ejecutar el archivo .ini para que conecte con la BD ??
  • 0

#24 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.446 mensajes
  • LocationMéxico

Escrito 12 agosto 2011 - 12:43

Cómo ejecutar el archivo .ini para que conecte con la BD ??


Hola lsedr

A ver si ésto te aclara un poco

Salud OS
  • 0

#25 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 12 agosto 2011 - 01:29


Cómo ejecutar el archivo .ini para que conecte con la BD ??


Hola lsedr

A ver si ésto te aclara un poco

Salud OS


saludos cordiales..

Disculpa egostar, pero mi BD es de SQL Server 2055 Express y tengo dentro de la carpeta el archivo .ini que me recomendaron...

lo que no se es cómo hacer que se ejecute el .ini
  • 0

#26 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 19 agosto 2011 - 12:48

saludos

No he logrado hacer la conexion de mi programa en delphi 7 con una BD de SQL server 2005 express, mediante el archivo .ini

tengo esto en el evento oncreate del Datamodule:



delphi
  1. procedure TDataModule1.DataModuleCreate(Sender: TObject);
  2. Var BaseDeDatos, ConStr : String;
  3.     IniFile: TIniFile;
  4. begin
  5.   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Inicio.ini');
  6.   BasedeDatos := IniFile.ReadString('BD','Path','');
  7. If BasedeDatos = '' then ShowMessage('Error al cargar Base de Datos');
  8.   ConStr := ' Provider = sqloledb; '+
  9.             ' Data Source = '+BaseDeDatos+';'+
  10.             ' Initial Catalog = MiBase.mdf ';
  11. AdoConnection1.ConnectionString := ConStr;
  12.   AdoConnection1  .Open;
  13. end;



y el archivo .ini dice esto:


delphi
  1. [BD]
  2. Path="C:\Clients2010\"
  3. [Logon]
  4. Auto="No"
  5. Login=""
  6. Pass=""




Archivos adjuntos


  • 0

#27 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.446 mensajes
  • LocationMéxico

Escrito 19 agosto 2011 - 12:50

Me parece que necesitas usuario y contraseña, no veo porque no se pueda conectar.

Salud OS
  • 0

#28 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 19 agosto 2011 - 12:59

Me parece que necesitas usuario y contraseña, no veo porque no se pueda conectar.

Salud OS



Cuando hago la conexión manualmente por el ADOconecction me queda así sin USUARIO ni CONTRASEÑA:

entonces cuando conecto la BD asi manualmente, sólo puedo usar el programa en esta pc y cuando lo traslado a otra deja de funcionar....

por eso quiero hacer la conexión de forma automatica y que no tenga yo que cambiar nada, y que se conecte cuando el soft funcione en cualquier pc

Archivos adjuntos


  • 0

#29 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 19 agosto 2011 - 02:09

A ver mi hermano, veo que estás encartado con eso, miremos a ver si puedo ayudarte, para no dar palos de ciego (porque no tengo instalado SQLSERVER) por favor haz lo siguiente: Click con el botón derecho del Mouse en el DataModule en donde tienes el ADOConnection y escoge la opción View as Text, busca la parte que dice "object ADOConnection1: TADOConnection" y copia desde esta parte hasta el "end" del objeto y postéalo, a ver si con esa información precisa podemos organizar correctamente la conexión desde un archivo ini.


Saludos




PD: Para salir de esa vista vuelves a dar click derecho y escoges la opción "View as Form"
  • 0

#30 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 19 agosto 2011 - 02:17

A ver mi hermano, veo que estás encartado con eso, miremos a ver si puedo ayudarte, para no dar palos de ciego (porque no tengo instalado SQLSERVER) por favor haz lo siguiente: Click con el botón derecho del Mouse en el DataModule en donde tienes el ADOConnection y escoge la opción View as Text, busca la parte que dice "object ADOConnection1: TADOConnection" y copia desde esta parte hasta el "end" del objeto y postéalo, a ver si con esa información precisa podemos organizar correctamente la conexión desde un archivo ini.


Saludos


PD: Para salir de esa vista vuelves a dar click derecho y escoges la opción "View as Form"


esto es lo unico que me sale luego de dar click derecho sobre el Datamodule y View as Text:

Archivos adjuntos


  • 0

#31 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 19 agosto 2011 - 02:18

Hola
Aqui te deje otra idea mas.
Saludos
  • 0

#32 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 19 agosto 2011 - 02:21

Cierra el proyecto y lo vuelves a abrir, luego abre solo el módulo, entonces sigues los pasos que te dí anteriormente,


Saludos
  • 0

#33 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 19 agosto 2011 - 10:59

Cierra el proyecto y lo vuelves a abrir, luego abre solo el módulo, entonces sigues los pasos que te dí anteriormente,


Saludos


Abrí solo el Datamodule y copie el texto como me dijiste, aquí esta todo lo que dice:

delphi
  1. [b]object DataModule1: TDataModule1
  2.   OldCreateOrder = False
  3.   OnCreate = DataModuleCreate
  4.   Left = 167
  5.   Top = 174
  6.   Height = 361
  7.   Width = 352
  8.   object ADOConnection1: TADOConnection
  9.     LoginPrompt = False
  10.     Provider = 'SQLOLEDB.1'
  11.     Left = 144
  12.     Top = 16
  13.   end
  14.   object ADOTable1: TADOTable
  15.     Connection = ADOConnection1
  16.     CursorType = ctStatic
  17.     TableName = 'Clientes'
  18.     Left = 64
  19.     Top = 72
  20.   end
  21.   object ADOTable2: TADOTable
  22.     Connection = ADOConnection1
  23.     CursorType = ctStatic
  24.     TableName = 'Equipos'
  25.     Left = 136
  26.     Top = 72
  27.   end
  28.   object ADOTable3: TADOTable
  29.     Connection = ADOConnection1
  30.     CursorType = ctStatic
  31.     TableName = 'Ordenes'
  32.     Left = 56
  33.     Top = 128
  34.   end
  35.   object ADOTable4: TADOTable
  36.     Connection = ADOConnection1
  37.     CursorType = ctStatic
  38.     TableName = 'Reparaciones'
  39.     Left = 136
  40.     Top = 120
  41.   end
  42.   object ADOTable5: TADOTable
  43.     Connection = ADOConnection1
  44.     CursorType = ctStatic
  45.     TableName = 'Actividadgeneraldeclientes'
  46.     Left = 56
  47.     Top = 184
  48.   end
  49.   object ADOTable6: TADOTable
  50.     Connection = ADOConnection1
  51.     CursorType = ctStatic
  52.     TableName = 'Tecnicos'
  53.     Left = 128
  54.     Top = 184
  55.   end
  56.   object ADOTable7: TADOTable
  57.     Connection = ADOConnection1
  58.     CursorType = ctStatic
  59.     TableName = 'Usuarios'
  60.     Left = 200
  61.     Top = 192
  62.   end
  63.   object ADOTable8: TADOTable
  64.     Connection = ADOConnection1
  65.     CursorType = ctStatic
  66.     TableName = 'Ticket'
  67.     Left = 40
  68.     Top = 248
  69.   end
  70.   object ADOTable9: TADOTable
  71.     Connection = ADOConnection1
  72.     CursorType = ctStatic
  73.     TableName = 'Recibo'
  74.     Left = 112
  75.     Top = 248
  76.   end
  77. end[/b]


  • 0

#34 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 20 agosto 2011 - 05:47

Amigo, la parte que nos interesa es la propiedad ConnectionString del objeto  ADOConnection1, que justo no salió quizá porque la borraste en el Object Inspector, si puedes, vuelve a crear el ConnectionString como lo haces habitualmente y entonces repites la operación, para que vayas entendiendo,  lo que necesito conocer es el ConnectionString que se genera en tu PC  de desarrollo al que te puedes conectar correctamente, para que  con base en de éste, podamos crear el procedimiento correcto a partir de un archivo ini.

Saludos
  • 0

#35 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 20 agosto 2011 - 07:54

Amigo, la parte que nos interesa es la propiedad ConnectionString del objeto  ADOConnection1, que justo no salió quizá porque la borraste en el Object Inspector, si puedes, vuelve a crear el ConnectionString como lo haces habitualmente y entonces repites la operación, para que vayas entendiendo,  lo que necesito conocer es el ConnectionString que se genera en tu PC  de desarrollo al que te puedes conectar correctamente, para que  con base en de éste, podamos crear el procedimiento correcto a partir de un archivo ini.

Saludos


saludos amigos

Pues wilson, esto es lo que dice en la propiedad ConecctionString del ADOConecction:



delphi
  1. Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Mibase;Data Source=ASUS777\SQLEXPRESS;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ASUS777;Use Encryption for Data=False;Tag with column collation when possible=False



Bueno amigo, como dije antes, me gustaría que me ayuden a poder configurar el soft para que se conecte a la BD de forma automatica en la PC donde se usará, pues no quiero estar instalandole a SQL Server 2005 express + Delphi 7 a esa computadora para poder hacer la conexión, solo quiero llevar el programa en una carpeta con su BD, y que al ejecutarse se conecte a la BD, esa es la idea.. Alguien me dijo que el SQL es complicado en eso de la conexion, pero vamos a ver si me pueden ayudar, todos los intentos hasta ahora han sido fallidos, y solo he podido conectar esa BD de esta forma:



Archivos adjuntos


  • 0

#36 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 20 agosto 2011 - 08:43

Amigo, si por algo se ha caracterizado este hilo es por dar palos de ciego (por falta de claridad en lo que se desea). Podrías seguir los pasos que ya te he dicho y postear copiando y pegando lo que dice desde  "object AdoConnection1" hasta "end" en el archivo .dfm del DataModule?

El archivo .dfm es que se muestra cuando le dices ViewAsText.

Saludos
  • 0

#37 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.446 mensajes
  • LocationMéxico

Escrito 20 agosto 2011 - 09:10

A ver, según  la ConnectionString  del ADOConnection, veo que la estas creando con los datos incorrectos.


[table]
[tr][td]TU TIENES[/td][td]  [/td][td]CONEXION CORRECTA[/td][/tr]
[tr][td][/td][td]  [/td][td][/td][/tr]
[tr][td]Provider = sqloledb;[/td][td]  [/td][td]Provider = SQLOLEDB.1;[/td][/tr]
[tr][td]Data Source = C:\Clients2010\;[/td][td]  [/td][td]Data Source = ASUS777\SQLEXPRESS;[/td][/tr]
[tr][td]Initial Catalog = MiBase.mdf;[/td][td]  [/td][td]Initial Catalog = Mibase;[/td][/tr]
[/table]

Salud OS
  • 0

#38 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 20 agosto 2011 - 09:21

Amigo, si por algo se ha caracterizado este hilo es por dar palos de ciego (por falta de claridad en lo que se desea). Podrías seguir los pasos que ya te he dicho y postear copiando y pegando lo que dice desde  "object AdoConnection1" hasta "end" en el archivo .dfm del DataModule?

El archivo .dfm es que se muestra cuando le dices ViewAsText.

Saludos



ok. esto es lo que tengo:


delphi
  1. object ADOConnection1: TADOConnection
  2.     Connected = True
  3.     ConnectionString =
  4.       'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security In' +
  5.       'fo=False;Initial Catalog=Mibase;Data Source=ASUS777\SQLEXPRESS'
  6.     LoginPrompt = False
  7.     Provider = 'SQLOLEDB.1'
  8.     Left = 144
  9.     Top = 16
  10.   end


  • 0

#39 lsedr

lsedr

    Advanced Member

  • Miembros
  • PipPipPip
  • 272 mensajes

Escrito 20 agosto 2011 - 09:24

A ver, según  la ConnectionString  del ADOConnection, veo que la estas creando con los datos incorrectos.


[table]
[tr][td]TU TIENES[/td][td]  [/td][td]CONEXION CORRECTA[/td][/tr]
[tr][td][/td][td]  [/td][td][/td][/tr]
[tr][td]Provider = sqloledb;[/td][td]  [/td][td]Provider = SQLOLEDB.1;[/td][/tr]
[tr][td]Data Source = C:\Clients2010\;[/td][td]  [/td][td]Data Source = ASUS777\SQLEXPRESS;[/td][/tr]
[tr][td]Initial Catalog = MiBase.mdf;[/td][td]  [/td][td]Initial Catalog = Mibase;[/td][/tr]
[/table]

Salud OS


Pues no se, esa forma manual de conectar mi programa con la BD de SQL lo aprendíen este foro, pues yo no sabía hacerlo en ese entonces...

entonces que piensas que debo hacer, modificar el string y escribirlo como me decís ?
  • 0

#40 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.446 mensajes
  • LocationMéxico

Escrito 20 agosto 2011 - 09:42


A ver, según  la ConnectionString  del ADOConnection, veo que la estas creando con los datos incorrectos.


[table]
[tr][td]TU TIENES[/td][td]  [/td][td]CONEXION CORRECTA[/td][/tr]
[tr][td][/td][td]  [/td][td][/td][/tr]
[tr][td]Provider = sqloledb;[/td][td]  [/td][td]Provider = SQLOLEDB.1;[/td][/tr]
[tr][td]Data Source = C:\Clients2010\;[/td][td]  [/td][td]Data Source = ASUS777\SQLEXPRESS;[/td][/tr]
[tr][td]Initial Catalog = MiBase.mdf;[/td][td]  [/td][td]Initial Catalog = Mibase;[/td][/tr]
[/table]

Salud OS


Pues no se, esa forma manual de conectar mi programa con la BD de SQL lo aprendíen este foro, pues yo no sabía hacerlo en ese entonces...

entonces que piensas que debo hacer, modificar el string y escribirlo como me decís ?


Vamos a verlo con tu código

Como lo estas haciendo:



delphi
  1. procedure TDataModule1.DataModuleCreate(Sender: TObject);
  2. Var BaseDeDatos, ConStr : String;
  3.     IniFile: TIniFile;
  4. begin
  5.   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Inicio.ini');
  6.   BasedeDatos := IniFile.ReadString('BD','Path','');
  7. If BasedeDatos = '' then ShowMessage('Error al cargar Base de Datos');
  8.   ConStr := ' Provider = sqloledb; '+
  9.             ' Data Source = '+BaseDeDatos+';'+
  10.             ' Initial Catalog = MiBase.mdf ';
  11. AdoConnection1.ConnectionString := ConStr;
  12.   AdoConnection1  .Open;
  13. end;



[ini]
[BD]
Path="C:\Clients2010\"
[Logon]
Auto="No"
Login=""
Pass=""
[/ini]

Como yo pienso que se debe hacer



delphi
  1. procedure TDataModule1.DataModuleCreate(Sender: TObject);
  2. Var
  3.   BaseDeDatos,
  4.   Catalogo,
  5.   ConStr : string;
  6.   IniFile: TIniFile;
  7. begin
  8.  
  9.   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Inicio.ini');
  10.       BasedeDatos := IniFile.ReadString('BD','Path','');
  11.       Catalogo:= IniFile.ReadString('BD','Catalogo','');
  12.   IniFile.Free;
  13.  
  14.   If (BasedeDatos = '') or
  15.       (Catalogo = '') then
  16.       ShowMessage('No fué posible obtener la iformación de la Base de Datos')
  17.   else  begin
  18.           ConStr := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;' +
  19.                     'Initial Catalog=' + Catalogo +
  20.                     ';Data Source=' + BaseDeDatos;
  21.           AdoConnection1.ConnectionString := ConStr;
  22.           AdoConnection1.Open;
  23.   end;
  24. end;



[ini]
[BD]
Path=ASUS777\SQLEXPRESS
Catalogo=Mibase
[Logon]
Auto="No"
Login=""
Pass=""
[/ini]

Salud OS
  • 0




IP.Board spam blocked by CleanTalk.