Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-03-2010
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
Params con Int64

Hola a tod@s,

no tengo claro si esta consulta corresponde a este foro o al de bbdd (mysql concretamente), así que si me he equivocado le pido disculpas a los moderadores

utilizo la siguiente función (no hay componentes visuales) con parámetros que devuelve un valor, el tema es que los datos en la tabla son del tipo bigint y el result también, pero no se cómo pasarle el párametro para ese tipo, utilizo Int64 :

Código Delphi [-]
function DimeCentroDiet(VDiet:Int64):Int64;
var
  MiQry : TZReadOnlyQuery;
  isql : string;
begin
  isql := 'select cntroasig from tb02D where cdgo = :cdgotemp';

  try
    MiQry := TZReadOnlyQuery.Create(nil);
    with MiQry do
    begin
      //Parent := FInsertar;
      MiQry.Connection := Data.ZConnectTGS;
      MiQry.SQL.Clear;
      MiQry.sql.Text := isql;
      MiQry.ParamByName('cdgotemp').asint64 := VDiet; //lo compila sin errores
      MiQry.Open;

      if MiQry.RecordCount >0 then begin
        Result := MiQry.fields[0].value;
      end else begin
        Result := 0;
      end;
    end;
  finally
    MiQry.Close;
    MiQry.Free;
  end;
end;
alguien podría indicarme qué estoy haciendo mal ??

Muchas Gracias a tod@s
__________________
Toni | blog
Responder Con Cita
  #2  
Antiguo 30-03-2010
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
respondo yo mismo y sigo consultando

Código Delphi [-]
function DimeCentroDiet(VDiet:Int64):Int64;
var
  MiQry : TZReadOnlyQuery;
  isql : string;
begin
  isql := 'select cntroasig from tb02D where cdgo = :cdgotemp';

  try
    MiQry := TZReadOnlyQuery.Create(nil);
    with MiQry do
    begin
      //Parent := FInsertar;
      MiQry.Connection := Data.ZConnectTGS;
      MiQry.SQL.Clear;
      MiQry.sql.Text := isql;
      MiQry.ParamByName('cdgotemp').Value := VDiet; 
      MiQry.Open;

      if MiQry.RecordCount >0 then begin
        Result := MiQry.fields[0].value;
      end else begin
        Result := 0;
      end;
    end;
  finally
    MiQry.Close;
    MiQry.Free;
  end;
end;

hasta ahí todo correcto según creo.
Pero ahora hago el proceso inverso, pasarle a otro campo de otra tabla el valor de la rutina anterior :

Código Delphi [-]
zqryParts.fieldbyname('centro').value = DimeCentroDiet(DM1.usudiet);
produce el error "no se puede acceder al campo 'centro' como Variant"... pero no entiendo por qué es variant.
__________________
Toni | blog
Responder Con Cita
  #3  
Antiguo 31-03-2010
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
creo que al final lo he solucionado con :
Código Delphi [-]
zqryPartscentro.asLargeInt = DimeCentroDiet(DM1.usudiet);

y parece que funciona correctamente, por lo menos guarda los datos en la tabla
__________________
Toni | blog
Responder Con Cita
  #4  
Antiguo 31-03-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿El componente zqryPartscentro es un query de zeoslib?
Responder Con Cita
  #5  
Antiguo 31-03-2010
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
si, un zqry... por?
__________________
Toni | blog
Responder Con Cita
  #6  
Antiguo 31-03-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por tgsistemas Ver Mensaje
si, un zqry... por?
Porque si fuese FIBplus, tienen "asInt64" que te habría venido perfecto
Responder Con Cita
  #7  
Antiguo 31-03-2010
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
gracias Casimiro Notevi,

son los zeos, nunca los había utilizado pero tras leer varios hilos del foro me decidí por ellos para trabajar con MySql.

Por cierto, los FIBplus son para interbase o estoy equivocado y pueden "atacar" también mysql, que pudiera ser....

Aún así, no me ha quedado muy claro el tema de los campos int64 por lo que iré estudiando más sobre ellos.

Muchas gracias por ayuda Casimiro Notevi
__________________
Toni | blog
Responder Con Cita
  #8  
Antiguo 31-03-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Sí, por lo que comentan algunos compañeros, los zeos son están bastante bien y además son libres.

Cita:
Empezado por tgsistemas Ver Mensaje
[..]Por cierto, los FIBplus son para interbase o estoy equivocado y pueden "atacar" también mysql, que pudiera ser....[..]
Sí, están pensado para Firebird e Interbase, nada más.
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
Error con Params Paulao Varios 5 08-08-2008 18:38:20
divicion entre dos Int64 gulder Varios 2 23-02-2008 01:03:23
Int64 e Integer gluglu Varios 5 28-02-2007 22:54:12
Sobre Int64 Delphius Varios 4 04-04-2006 18:49:35
No me permite cambiar un dominio de Int64 a integer apicito Firebird e Interbase 2 25-05-2004 19:05:04


La franja horaria es GMT +2. Ahora son las 10:05:29.


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