https://foro.gambas-es.org/viewtopic.php?f=3&t=1335&p=7722#p7722
-----------------------------------
jguardon
Lunes, 24 Enero 2011, 17:40

Re: TRAER EL ULTIMO REGISTRO
-----------------------------------
[quote]estoy tratando de usar format(n_factura, "00000") en el insert pero me da un error....[/quote]

Puede que estés cometiendo un error de sintaxis en la sentencia SQL. 

[code linenumbers=false syntax=gambas]DIM n_factura, letras_factura,  sql AS String
DIM res AS Result
DIM numero_factura as Integer

letras_factura = "AA"
numero_factura = 25
n_factura = format(numero_factura, "0000") 'se convierte a String con el formato especificado

n_factura = letras_factura & "-" & n_factura  ' concatenamos letras y números

' o mejor así:
n_factura = Subst("&1-&2",  letras_factura, n_factura) 

' preparamos la sentencia sql, usando placeholders (comodines)
sql = "INSERT INTO tabla (n_factura, otro_campo) VALUES (&1, &2);"

' OJO, no confundir la variable n_factura con el nombre de campo en la tabla, aunque 
' en este caso sean iguales!!

' ejecutamos la consulta sustituyendo los comodines
res.exec(sql, n_factura, otra_variable)[/code]

Para poder operar con los números de factura, éstos deben de ser Integer, pero para poder representarlos debes de hacer la conversión hacia la BD a String y de nuevo, al extraerlo de la BD volver a convertir a Integer para poder operar (sumar, restar, etc).

Además, usando la sustitución de comodines &1, &2, &3, etc, tendrás la ventaja de no tener que preocuparte del tipo de dato y olvidarte de quotear y concatenar los valores que pases al sql, evitando en gran medida errores en sql, independientemente del motor de BD que uses. 

Si lo haces así, no tendrás problemas, te lo aseguro.


