Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-01-2011
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 17
_CALI Va por buen camino
ayuda con conexion a SQL SERVER

hola amigos, un gusto como siempre

tengo un problema al trabajar con SQL SERVER 2005

trabajo con ODBC para conectarme a sql server uso BDE
ok
bueno, en un formulario tengo un TDatabase, TQuery con un TUpdateSQL para modificar los datos mediante CachedUpdates, tambien tengo un TTable.


por ejm: el query usa la siguiente instruccion SELECT * FROM TRABAJADORES
la tabla la uso para colocar los datos en un TLookUpComboBox la informacion del estado del trabajador osea si esta ACTIVO O CESADO.


cuando buscaba un trabajador el TLookUpComboBox desplegaba perfectamente los item contenidos en tabla osea ACTIVO Y CESADO y podia cambiar el estado y guardarlos perfectamente todo sin problemas


pero no se luego al tratar de cambiar el estado al trabajador me aparece aveces el siguiente mensaje :

[Microsoft][ODBC SQL Server Driver]la conexion esta ocupada con los resultados de otro hstmt


alguna idea muchas gracias!!!

Responder Con Cita
  #2  
Antiguo 10-01-2011
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Hola..

Utiliza ADO, es mucho mejor que el DBE ... sobre todo con SQL Server...

Salu2
__________________
BlueSteel
Responder Con Cita
  #3  
Antiguo 11-01-2011
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 17
_CALI Va por buen camino
Gracias Bluesteel por contestar este hilo,

investigue un poco sobre el error que me aparece y resulta que el error de conectividad es lanzado por el controlador ODBC y puesto que la aplicacion
que voy a desarrollar es una aplicacion cliente-servidor enorme con mas de 200 tablas es posible que ADO funcione bien???, puesto que el BDE ya me esta dando problemas con solo hacer pruebas, en otras palabras uso ADO???, tambien puedo hacer transacciones con ADO???

con BDE hago esto:

try
TDataBase1.StarTransaction
try
TQurery1.ApplyUpdates;
TQurery2.ApplyUpdates;
TDatabase1.Commit;
except
TDataBase1.Rollback;
end;

finally
TQuery1.CommitUpdates;
TQuery2.CommitUpdates;
end;

donde: TQuery1 y TQuery2 son mis consultas con CachedUpdates;



el equivalente en ADO cual seria o que codigo resulta mejor ???


Muchas Gracias!!!
Responder Con Cita
  #4  
Antiguo 11-01-2011
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 21
Enan0 Va por buen camino
Si Claro vas a poder utilizar Transacciones sin ningun tipo de problema

Lo unico que en vez de TQuery deberias utilizar el componente TAdoQuery (no tiene muchas modificaciones).

en cuanto a la conexion por ODBC, primero deberias verificar que puedas conectarte al SQL- server ya que el 2005 por defecto te blockea las conexiones por TCP/IP y por Nombres Tambien.

En cuanto a la conexion te recomiendo que Uses un String Fijo y le asignes el Nombre del ODBC, Usuario y password. o que lo levantes de un Archivo UDL

conexión por intermedio de archivo UDL
Código Delphi [-]
Connection.close;
Connection.ConnectionString:='FILE NAME=' +ArchivoUDL 
// esta variable deberia tenre el nombre de tu archivo UDL
Connection.OPEN;

conexión por medio de String ODBC

Código Delphi [-]
STRING:='Provider=MSDASQL.1;Password='+PSW+';Persist Security Info=True;User ID='+USR+';Data Source='+ODBC+';Initial Catalog='+DBNAME;

//Donde PSW: es la Variable que contiene el Password.
//USR: Variable que contiene el nombre de USUArio
//DBNAME: Nombre de la Base de Datos a Utilizar.
Connection.close;
Connection.ConnectionString:=String;
Connection.Open;

Cual conviene mas. y eso queda a tu gusto

Saludos
Responder Con Cita
  #5  
Antiguo 11-01-2011
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 21
Enan0 Va por buen camino
me Falto Comentar que Deberias agregar un TadoConnection y asignarlo a las Querys,

o en la Propiedad connectionString. de cada Query Agregar dicho Connection String.

saludos
Responder Con Cita
  #6  
Antiguo 11-01-2011
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 17
_CALI Va por buen camino
Smile

Gracias por el aporte, en verdad estoy haciendo las pruebas y resultan mejor; ahora, las transacciones las estoy haciendo por lado del cliente claro que despues afinando mas el sistema podre hacerlas en el mismo servidor pero mi pregunta es la siguiente:

las transacciones las realiza la conexion y mi ADOQuery esta en la BatchOptimist para enviar actualizaciones en bloque , quisiera saber si el siguiente codigo esta bien para efectuar transacciones a modo de prueba del lado del cliente


Código Delphi [-]
conexion.BeginTrans;
   try
     ADOQuery1.UpdateBatch(arAll);
     conexion.CommitTrans;
   except
     conexion.RollbackTrans;
   end;
Ya muy agradecido!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ayuda conexion delphi sql server lare SQL 7 19-11-2009 13:48:27
Conexión SQL Server vrs IBX Jorge Rojas M. Conexión con bases de datos 0 27-03-2008 01:12:11
Conexión a SQL server zvf Conexión con bases de datos 7 19-12-2007 16:41:30
Conexion a MS SQL SERVER Diegochr Conexión con bases de datos 12 03-10-2007 23:52:35
conexion a sql server nnl MS SQL Server 6 25-09-2006 21:50:04


La franja horaria es GMT +2. Ahora son las 00:08:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi