Generar table temporal

Generar table temporal

Postby jpcavagnaro » Thu Aug 04, 2022 2: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
Jorge
Saludos.
jpcavagnaro
 
Posts: 147
Joined: Tue Oct 11, 2016 1:02 pm
Location: Luján, bs. as.

Re: Generar table temporal

Postby cmsoft » Thu Aug 04, 2022 6: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: Select all  Expand view
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
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Generar table temporal

Postby jpcavagnaro » Thu Aug 04, 2022 6: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
Jorge
Saludos.
jpcavagnaro
 
Posts: 147
Joined: Tue Oct 11, 2016 1:02 pm
Location: Luján, bs. as.

Re: Generar table temporal

Postby cmsoft » Thu Aug 04, 2022 9: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
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 90 guests