FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Generar table temporal
Posts: 0
Joined: unknown
Generar table temporal
Posted: Thu Aug 04, 2022 02:33 PM

Hola gente, estoy tratando de generar una tabla temporal para poder editar y luego generar otra con el resultado.

el tema es que por programa me da error y si copio la sentencia al sql manager funciona bien, no me doy cuenta que estoy haciendo mal.

cSQLP := ;
"truncate table TmpProd "+ chr( 13 ) + chr( 10 ) + ;
"insert into TmpProd SELECT dbo.Fichacod.Producto, dbo.Fichacod.Codigo, dbo.Fichacod.Descri, dbo.Fichacod.Cantid, dbo.Stock.Precio_vta, dbo.Fichacod.Cantid * dbo.Stock.Precio_vta AS total " + chr(13) + chr(10) + ;
"FROM dbo.Fichacod INNER JOIN dbo.Stock ON dbo.Fichacod.Codigo = dbo.Stock.Codigo " + chr(13) + chr(10) + ;
"WHERE (dbo.Fichacod.Producto = '"+wcodigo+"')" + chr(13) + chr(10) + ;
"select * from tmpprod "

TRY
IF oCon:State() = 0
oCon:open()
endif
woRSp := CargaRecordSet( cSQLp, CadenaCon )

CATCH oErr
MsginFo( "no puedo leer "+cSQLP )
showError( oErr )
wtxt = "errorge.txt"
cHandeg = FCREATE ( wtxt )
FWrite ( cHandeg, cSQLP + chr( 13 ) + chr( 10 ) )
fclose(cHandleg)
RETURN NIL
END TRY

Saludos
Jorge

Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Generar table temporal
Posted: Thu Aug 04, 2022 06:02 PM
Jorge, no la estas creando, la estas intentando truncar (vaciar), pero si es una tabla temporal, seguramente si no la creaste antes en esta instancia de conexión, posiblemente no exista.
Lo que tienes que hacer es crearla SI NO EXISTE.

Code (fw): Select all Collapse
 oCon:Execute("";
    + "CREATE TEMPORARY TABLE IF NOT EXISTS TmpProd ";
    +"("; 
    +"`Producto` INT(6) NOT NULL AUTO_INCREMENT,";
// aqui toda la estructura de tu tabla temporal //
    +" PRIMARY KEY (Producto)) ENGINE=INNODB DEFAULT CHARSET=utf8")   
  oApp:oServer:NextResult()
oCon:Execute("TRUNCATE  TmpProd ")
//... Todo el resto de tu codigo
Posts: 0
Joined: unknown
Re: Generar table temporal
Posted: Thu Aug 04, 2022 06:24 PM

Hola Cesar, gracias por responder.

Ya está creada, intente hacerlo como decís pero también me daba error, por eso la deje creada.

Es muy raro, pienso que debe ser algo del xharbour, porque la misma sentencia en el sql mangement funciona sin error

Saludos
Jorge

Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Generar table temporal
Posted: Thu Aug 04, 2022 09:56 PM

Jorge, como para tener en cuenta, tenes que ver si el usuario que accedes de forma remota, tiene los mismos privilegios del usuario que usas para acceder con el sql mangement.
Si accedes a tu base con un gestor de base de datos web, en ese caso ese usuario seguro que usa un usuario local: ejemplo root@localhost
Si accedes de forma remota con un gestor tipo el Heidy o SqlYog, ahi si seguramente usa un usuario remoto: ejemplo root@%
Si el caso es el primero, puede ser una cuestion de permisos de usuarios.
Saludos

Continue the discussion