Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   comparar do tedit.text (https://www.clubdelphi.com/foros/showthread.php?t=69870)

Caral 14-09-2010 23:58:39

Hola
Código Delphi [-]
query1.SQL.Clear;
query1.sql.text:= 'Select max(ctrlconcepto) as maximo from cobranzas where alucurso =  :uno  and concepto = :dos';
Query1.Params[0].Value:= IntToStr( x );
Query1.Params[1].Value:= dbedit9.text;
query1.Active:=true;
max:= Query1.Fields[0].Value;
Saludos

ecfisa 15-09-2010 00:10:41

Cita:

Empezado por gonza_619 (Mensaje 376452)
me tira error de capability not suported.
que qiere decir cuando pongo al final .value?
quizas sea algo en la consulta pero el error me lo marca en la asignacion al MAX
no me tira error en la ocnsulta:


Hola gonza.
Ya en otro post que hiciste te conteste que esto:
Código Delphi [-]
query1.sql.text:= 'Select max(ctrlconcepto) as maximo from cobranzas  where alucurso =IntToStr( x ) and concepto=IntToStr(dbedit9.text)' ;
no va a funcionar.

IntToStr no es una sentencia SQL, tenés que sacar a IntToStr fuera de las comillas... :)

Saludos.

gonza_619 15-09-2010 00:13:55

bueno me da error de type missmatch in expression.
bien es que resulta tengo que hacer un control

tablaxx
cmapo1 campo2 campo3
1 1 1
1 1 2
1 2 1

como veras si en campo 2 cambia , tambien tiene q cambiar campo3
si cambia campo2 entonces cambia campo3 = 1
si campo2 sigue con el mismo valor(1) entonces campo2 sera 2, si campo2 sigue (1), campo3 cambia =3 y asi.
ahora si campo2 cambia a(2) entonce campo3 vuelve a=1

por eso en la consulta referencio los campos campo1 y campo2,

BIEN AHORA PROBE ASI: SEGUN LO ENTENDI ANTERIORMENTE

query1.sql.text:= 'Select max(ctrlconcepto) as maximo from cobranzas where alucurso ='+IntToStr( x ) 'and concepto='+inttostr(dbedit2.text);

DEJANDO AFUERA LOS INTOSTR Y ME DICE MISSING OPERATOR OR SEMICOLON
ANTES DE ESTA PARTE +inttostr(dbedit2.text);

ecfisa 15-09-2010 00:26:49

Si por que a golpe de ojo veo que te falta un '+' en la concatenación.

gonza, por que no probas así...

Código Delphi [-]
query1.sql.text:= 'Select max(ctrlconcepto) as maximo from cobranzas where alucurso = '+ 
                  QuotedStr(IntToStr(x)) + ' and concepto = ' + QuotedStr(IntToStr(dbedit9.text));

Saludos.:)

Caral 15-09-2010 00:40:29

Hola
type missmatch in expression es simplemente que la evaluación no es la correcta, osea, el dato que se da al parametro no coincide con el del campo.
Puse los parametros por que es conveniente irse acostumbrando a usarlos, es una buena politica, da orden al codigo etc. etc,.
Lo que te explica el Maestro ecfisa es un cambio en la condicion de los datos usando el QuotedStr, que es en esencia lo que indica el error, un tipo erroneo de dato o expresion.
Saludos


La franja horaria es GMT +2. Ahora son las 04:49:19.

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