Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Providers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-11-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Asignación automática de claves en datasnap

Hola club, en mi aplicación usando la tecnología datasnap, estaba utilizando para los ABM un método que incrementaba los códigos de manera automática. Para dicho cometido lo que hacia era los siguiente:

Código Delphi [-]
function ObtenerCodigo(vTabla, vCodigo: String): string;
var
  vSQLConeccion : TSQLConnection;
  vQuery : TSqlQuery;
  vResult: variant;
begin
  vSQLConeccion := TSQLConnection.Create(nil);
  vQuery := TSqlQuery.Create(nil);
  try
    vSQLConeccion.LoginPrompt := False;
    vSQLConeccion.connectionname:= 'mssqlprueba';
    vSQLConeccion.LoadParamsFromIniFile(ChangeFileExt(Application.ExeName, '.ini'));
    vSQLConeccion.DriverName := 'MSSQL';
    vSQLConeccion.Open; <------linea del error
    with vQuery do
    begin
      Close;
      SQLConnection := vSQLConeccion;
      SQL.Add('Select Max('+ vCodigo +') As CodigoMax From '+ vTabla);
      Open;
      if FieldByName('CodigoMax').Value = null then
        vResult := IntToStr(1)
      else
        vResult := FieldByName('CodigoMax').AsVariant + Variant(01);
        Result := vResult;
    end;
    vQuery.Close;
    vSQLConeccion.Close;
  finally
    vSQLConeccion.Free;
    vQuery.Free;
  end;
end;

Lo que hago es crear un SQLConnection, mediante un archivo .ini cargaba las configuración del mismo. Luego, creaba un SQLQuery lo conectaba al SQLConnection y bueno es resto como se ve es una sentencia de tipo Select con un Max() al campo código pasado como parámetro. Los parámetros son el nombre de la tabla y el nombre de campo.
Esta función andaba perfecto, hasta que hice una prueba en donde realizaba excesivas peticiones que era ejecutar listados con RBuilder, esto lo hacia a modo de Tester. Al ejecutar muchos listados y luego hacer una inserción, al pasar por la linea del Open me sale el sig error:

Cita:
Project Cliente.exe raised exception class TDBXError with message 'DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, or of the wrong version.'.
Solo cuando ejecuto excesivamente listados. No se que sucederá internamente para producir este error en los driver de la DBExpress. Alguien sabe de que otra manera puedo hacer asignación automática de claves en una aplicación de 3 capas datasnap.

Saludos.
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
Actualizacion automatica de un EXE. Caral Varios 7 12-04-2008 22:16:12
Asignacion Automatica frholguin Varios 9 19-10-2006 10:24:54
claves berfer Windows 3 29-09-2006 22:03:27
búsqueda automática fergape Varios 4 04-05-2006 18:48:53
Claves Ado soloriv Conexión con bases de datos 2 04-04-2006 17:54:16


La franja horaria es GMT +2. Ahora son las 11:05:33.


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