SQLADS - Que hago mal (Solucionado)

SQLADS - Que hago mal (Solucionado)

Postby MarioG » Mon May 06, 2013 2:55 pm

SQLADS me supera!
Tengo el siguiente código:
Code: Select all  Expand view
  if !"hConnect" IN h0
      AdsConnect(  ::oMG:hIni["CAMINOS"]["bdatos"]+"\local", ::oMG:hIni["ADS"]["srvtipo"] )
      h0:hConnect:= AdsConnection()
   else
      if Select( "SQLSele" ) > 0
         SQLSele->( DbCloseArea() )
      end
   end
   DBSelectArea( 0 )

   if !ADSCreateSQLStatement( "SQLSele", ADS_CDX, h0:hConnect )
      MsgStop( "Fallo en la conexión a Tablas [Error Nº: "+cValTochar( AdsGetLastError() ), "Reintente..." )
      return( nil )
   end

   if !ADSExecuteSQLDirect( "SELECT Count(*) FROM BDSGC36 WHERE FSele01=.T." )
      MsgStop( "Fallo en lectura de Tabla Adicional de Articulos", "Reintente..." )
      SQLSele->( DbCloseArea() )
   else
      if SQLSele->Expr == 0
         SQLSele->( DbCloseArea() )
         ADSCreateSQLStatement( "SQLSele", ADS_CDX )
         ADSExecuteSQLDirect( 'INSERT INTO BDSGC36 SELECT FArt02 FROM "'+(::oMG:hIni["CAMINOS"]["bdatos"])+'\BDSGC01"' )
      end
   end
 

El problema es que la sentencia:
'INSERT INTO BDSGC36 SELECT FArt02 FROM "'+(::oMG:hIni["CAMINOS"]["bdatos"])+'\BDSGC01"'

no se ejecuta. Y, probada desde ARC si se ejecuta
Que está mal en mi código?
muchas gracias
Last edited by MarioG on Fri May 10, 2013 11:40 am, edited 1 time in total.
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: SQLADS - Que hago mal

Postby RSalazarU » Mon May 06, 2013 7:06 pm

Hola Mario:

creo que tienes varios errores:

Code: Select all  Expand view
SELECT Count(*) FROM BDSGC36 WHERE FSele01=.T.


creo que deberia ser:
Code: Select all  Expand view

SELECT Count(*) FROM BDSGC36 WHERE FSele01=TRUE


y .. no se entiende que deberia hacer la siguiente instruccion:

Code: Select all  Expand view
'INSERT INTO BDSGC36 SELECT FArt02 FROM "'+(::oMG:hIni["CAMINOS"]["bdatos"])+'\BDSGC01"'


* despues del FROM solo deberia estar el nombre de la tabla.
* que es FArt02 ???
* Como estas insertando de una tabla a otra, la estructura de las dos deberia ser similar.
* creo que deberia ser algo asi como:

Code: Select all  Expand view

'INSERT INTO BDSGC36 SELECT * FROM BDSGC01'
 

Atentamente:

Rolando.
Cochabamba, Bolivia.
RSalazarU
 
Posts: 211
Joined: Wed Jul 16, 2008 12:59 pm
Location: Cochabamba-Bolivia

Re: SQLADS - Que hago mal

Postby MarioG » Tue May 07, 2013 12:10 pm

Rolando; gracias por tu tiempo
Respondo:
SELECT Count(*) FROM BDSGC36 WHERE FSele01=.T.

Esto es correcto para ADSSQL lo hago en ARC, ademas de en mi código y me devuelve lo esperado y, como bien dices, también lo hace con TRUE

luego,
'INSERT INTO BDSGC36 SELECT FArt02 FROM "'+(::oMG:hIni["CAMINOS"]["bdatos"])+'\BDSGC01"'

es lo mismo que hacer:
Code: Select all  Expand view
INSERT INTO BDSGC36 SELECT FArt02 FROM "d:\MiApp\bDatos\BDSGC01"

Fart02 es el campo que selecciono de BDSGC01 para insertar en BDSGC36
Esto también, al menos en ARC, funciona. Probablemente no en código, aunque no me devuelve ningún error
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: SQLADS - Que hago mal

Postby Patricio Avalos Aguirre » Tue May 07, 2013 2:06 pm

Hola

Al parecer esta correcto, ahora habria que ver que error te esta dando ADS

coloca esta instruccion despues de AdsExecuteSqlDirect

Code: Select all  Expand view
MsgInfo("error AdsExecuteSqlDirect(cSql)" + CRLF + "Error:"+cValtochar( AdsGetLastError() ) )


y veamos que error esta lanzando
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1059
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Re: SQLADS - Que hago mal

Postby MarioG » Tue May 07, 2013 3:17 pm

Patricio;
El numero de error es 7200
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: SQLADS - Que hago mal

Postby Patricio Avalos Aguirre » Wed May 08, 2013 1:40 pm

Mario

el problema es la consulta segun el error
Problem: The problem might be caused by an SQL statement error or some other limitation in the way Advantage processes SQL statements.

lo que debieras hacer es ir paso a paso a ver que pasa

1.- hacer esta consulta a ver que retorna

Code: Select all  Expand view
cSql := "SELECT FArt02 FROM " +::oMG:hIni["CAMINOS"]["bdatos"] + "\BDSGC01"

if SqlEjecute( cSql )
  //error
endif
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1059
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Re: SQLADS - Que hago mal

Postby MarioG » Wed May 08, 2013 2:54 pm

Patricio; gracias por tu tiempo
El aislar me ayudó a encontrar el error!

Estaba mal escrita la sentencia
'INSERT INTO BDSGC36 SELECT FArt02 FROM "'+(::oMG:hIni["CAMINOS"]["bdatos"])+'\BDSGC01"'

correcta:
Code: Select all  Expand view
'INSERT INTO Bdsgc36 (FArt01) SELECT FArt02 FROM "'+(::oMG:hIni["CAMINOS"]["bdatos"])+'\BDSGC01"'


Ahora, dos consultas mas:
AdsGetLastError() retorna 5018, que es?
Como se consigue la tabla de errores?. Tengo ADSERROR.hlp (aunque solo funciona en XP), pero interpreto que no se refiere a los errores SQLADS

gracias nuevamente
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: SQLADS - Que hago mal

Postby Patricio Avalos Aguirre » Wed May 08, 2013 10:25 pm

Hola Mario

instala Advantage Data Architect, que es como el DBU

http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=16

este te creara un grupo ahi busca Advantage Help File

en la ayuda busca Advantage Error Guide
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1059
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Re: SQLADS - Que hago mal

Postby MarioG » Wed May 08, 2013 10:45 pm

Gracias Patricio
Sirmpre estuvo ahí!!! (nunca inspeccione la carpeta) :oops:
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 61 guests