![]() |
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!!! :) |
Hola..
Utiliza ADO, es mucho mejor que el DBE ... sobre todo con SQL Server... Salu2:D:p |
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!!!:) |
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
conexión por medio de String ODBC
Cual conviene mas. y eso queda a tu gusto Saludos |
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 |
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 Ya muy agradecido!!! |
La franja horaria es GMT +2. Ahora son las 23:55:42. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi