Página 1 de 1

Duda con Ads en INSERT INTO

Publicado: Jue Feb 16, 2006 12:41 am
por Xailer Noticias
PARA USAR EL INSERT INTO, CUAL DE LOS TRES METODOS DEBO USAR O SI EXISTE
ALGUNO ESPECIAL, ME REFIERO A QueryRow, QueryArray o QueryValue, con los
tres me da el siguiente error:
DBSELECTAREA(0)
Registro de errores BASE/1002 Alias does not exist: ADSSQL
&Reintentar
Y aunque me agrega los valores pero?????
Lo que tengo hecho es lo sieguiente:
METHOD Bn1Click( oSender ) CLASS TForm1
local ver, aDatos, cQuery, xValor, cQuery1, a
WITH OBJECT ::oDS := TAdsDataSource():New(Self)
:cConnect := "C:CONTROINVDBFDatos"
:cUser := "carlos"
:cPassword := "ellakula"
:lConnected := .T.
:nFileType := afCDX
:nServerType := asLOCAL
:lUseDictionary := .f.
cQuery := "INSERT INTO USUARIOS (USUARIO, NOMBRE, PASSW,
FOTO) VALUES ('"+::oEDUsuario:Value +"', '" + ::oEdNombre:Value
+"','"+::oEdClave:Value +"','"+::oEdFoto:Value+"')"
:QueryRow(cQuery)
END WITH
RETURN Nil
Gracias de antemanos

Duda con Ads en INSERT INTO

Publicado: Jue Feb 16, 2006 8:15 pm
por jfgimenez
Carlos,
por favor, envíanos el fichero error.log que se ha generado. Y si es posible
también, un pequeño ejemplo que reproduzca el problema.
--
Un saludo,
José F. Giménez

Duda con Ads en INSERT INTO

Publicado: Vie Feb 17, 2006 6:04 pm
por ignacio
Muy Sr. mio,
Los metodos Query??? solo se pueden utilizar con instrucciones tipo SELECT
....
Para operaciones del tipo INSERT .. deberá utilizar el metodo Execute del
DataSource.
Saludos,
"Xailer Noticias" <carlosijc@icqmail.com> escribió en el mensaje
news:[email=43F3BC39.5090906@icqmail.com...]43F3BC39.5090906@icqmail.com...[/email]
> PARA USAR EL INSERT INTO, CUAL DE LOS TRES METODOS DEBO USAR O SI EXISTE
> ALGUNO ESPECIAL, ME REFIERO A QueryRow, QueryArray o QueryValue, con los
> tres me da el siguiente error:
>
> DBSELECTAREA(0)
> Registro de errores BASE/1002 Alias does not exist: ADSSQL
> &Reintentar
>
> Y aunque me agrega los valores pero?????
>
> Lo que tengo hecho es lo sieguiente:
>
> METHOD Bn1Click( oSender ) CLASS TForm1
> local ver, aDatos, cQuery, xValor, cQuery1, a
> WITH OBJECT ::oDS := TAdsDataSource():New(Self)
> :cConnect := "C:CONTROINVDBFDatos"
> :cUser := "carlos"
> :cPassword := "ellakula"
> :lConnected := .T.
> :nFileType := afCDX
> :nServerType := asLOCAL
> :lUseDictionary := .f.
> cQuery := "INSERT INTO USUARIOS (USUARIO, NOMBRE, PASSW,
> FOTO) VALUES ('"+::oEDUsuario:Value +"', '" + ::oEdNombre:Value
> +"','"+::oEdClave:Value +"','"+::oEdFoto:Value+"')"
> :QueryRow(cQuery)
> END WITH
> RETURN Nil
>
> Gracias de antemanos
>

Duda con Ads en INSERT INTO

Publicado: Vie Feb 17, 2006 9:13 pm
por carlos
Muy estimado señor, Ignacio Ortiz:
Le recuerdo que estoy tratando de meterme en el mundo de la progrmacion
de SQL, lo que quiero decir que mis conocimientos no son nada bueno,
pero como muestro o trato de decir, mi duda esta en lo siguiente:
Por ejemplo, el motor de datos que uso es el de Advantage DataBase
Server, el control que tiene para esto es TAdsDataSource()y sus metodos son:
Métodos de TAdsDataSource
BeginTrans
CommitTrans
DefDataExtension
DefIdxExtension
QueryArray
QueryRow
QueryValue
RollBackTrans
Me dices que debo usar el metodo Execute del TDataSource para dicha
intruccion (INSERT INTO), ahora bien, el TAdtDataSource hereda de
TDbfDataSource que a su vez hereda de TDataSource que es el control que
posee dicho metodo(execute), lo ejecuto no trabaja, logicamente sin
emitir error,
WITH OBJECT ::oDS := TAdsDataSource():New(Self)
:cConnect := "C:CONTROINVDBFDatos"
:cUser := "carlos"
:cPassword := "ellakula"
:lConnected := .T.
:nFileType := afCDX
:nServerType := asLOCAL
:lUseDictionary := .f.
cQuery := "INSERT INTO USUARIOS (USUARIO, NOMBRE, PASSW,
FOTO) VALUES ('"+::oEDUsuario:Value +"', '" + ::oEdNombre:Value
+"','"+::oEdClave:Value +"','"+::oEdFoto:Value+"')"
:ExeCute(cQuery)
END WITH
Ya explique que con el metodo queryRow() almacena el dato pero daba un
error, ahora que se supone que debo hacer}?
Gracias
Ignacio Ortiz escribió:
> Muy Sr. mio,
>
> Los metodos Query??? solo se pueden utilizar con instrucciones tipo SELECT
> ...
>
> Para operaciones del tipo INSERT .. deberá utilizar el metodo Execute del
> DataSource.
>
> Saludos,
>
> "Xailer Noticias" <carlosijc@icqmail.com> escribió en el mensaje
> news:[email=43F3BC39.5090906@icqmail.com...]43F3BC39.5090906@icqmail.com...[/email]
>> PARA USAR EL INSERT INTO, CUAL DE LOS TRES METODOS DEBO USAR O SI EXISTE
>> ALGUNO ESPECIAL, ME REFIERO A QueryRow, QueryArray o QueryValue, con los
>> tres me da el siguiente error:
>>
>> DBSELECTAREA(0)
>> Registro de errores BASE/1002 Alias does not exist: ADSSQL
>> &Reintentar
>>
>> Y aunque me agrega los valores pero?????
>>
>> Lo que tengo hecho es lo sieguiente:
>>
>> METHOD Bn1Click( oSender ) CLASS TForm1
>> local ver, aDatos, cQuery, xValor, cQuery1, a
>> WITH OBJECT ::oDS := TAdsDataSource():New(Self)
>> :cConnect := "C:CONTROINVDBFDatos"
>> :cUser := "carlos"
>> :cPassword := "ellakula"
>> :lConnected := .T.
>> :nFileType := afCDX
>> :nServerType := asLOCAL
>> :lUseDictionary := .f.
>> cQuery := "INSERT INTO USUARIOS (USUARIO, NOMBRE, PASSW,
>> FOTO) VALUES ('"+::oEDUsuario:Value +"', '" + ::oEdNombre:Value
>> +"','"+::oEdClave:Value +"','"+::oEdFoto:Value+"')"
>> :QueryRow(cQuery)
>> END WITH
>> RETURN Nil
>>
>> Gracias de antemanos
>>
>
>

Duda con Ads en INSERT INTO

Publicado: Sab Feb 18, 2006 7:22 pm
por jfgimenez
Carlos,
> Muy estimado señor, Ignacio Ortiz:
>
> Le recuerdo que estoy tratando de meterme en el mundo de la progrmacion de
> SQL, lo que quiero decir que mis conocimientos no son nada bueno, pero
> como muestro o trato de decir, mi duda esta en lo siguiente:
Por favor, no te enfades. En tu mensaje anterior no ponías el nombre por
ningún lado, e Ignacio no sabía a quién se estaba dirigiendo. Yo supuse que
eras tú porque ví un mensaje relacionado en el foro local.olivares2000.xbase
que sí estaba firmado por tí.
> Ya explique que con el metodo queryRow() almacena el dato pero daba un
> error, ahora que se supone que debo hacer}?
Yo no soy el experto en bases de datos, pero creo que si utilizas ADS, para
las operaciones de inserción es más apropiada la forma clásica (dbAppend), y
reservar las sentencias SQL para las consultas. Y si quieres usarlo todo con
sentencias SQL, supongo que sería más apropiado utilizar TOdbcDataSource, y
no TAdsDataSource.
En cualquier caso, envíanos el fichero error.log, y así podremos estudiar
mejor el problema y, si procede, darle una solución.
--
Un saludo,
José F. Giménez

Duda con Ads en INSERT INTO

Publicado: Sab Feb 18, 2006 7:37 pm
por Guest
Carlos,
El motor AdsDataSource es para manejo de tablas tipo DBF con servidor local
o remoto de ADS. Adicionalmente se le incorporó la posibilidad de recuperar
información a través de sentencias SQL, el clásico SELECT. y no hay más. Si
desea realizar operaciones del tipo INSERT de SQL le recomiendo que utilice
una conexión ODBC con el motor ADS, o mejor aún no utilice sentencias SQL y
utilize el método clásico de APPEND BLANK.
Estoy convencido de que también es posible realizar operaciones tipo INSERT
directamente con el RDD de ADS y xHarbour pero siento no poder ayudarle con
ello, quizas en el foro de xHarbour le puedan dar más información.
Saludos,
"Carlos Cedeño Vera" <carlos@labodegadeclimas.com> escribió en el mensaje
news:43f62e89$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Muy estimado señor, Ignacio Ortiz:
>
> Le recuerdo que estoy tratando de meterme en el mundo de la progrmacion de
> SQL, lo que quiero decir que mis conocimientos no son nada bueno, pero
> como muestro o trato de decir, mi duda esta en lo siguiente:
>
> Por ejemplo, el motor de datos que uso es el de Advantage DataBase Server,
> el control que tiene para esto es TAdsDataSource()y sus metodos son:
>
> Métodos de TAdsDataSource
>
> BeginTrans
> CommitTrans
> DefDataExtension
> DefIdxExtension
> QueryArray
> QueryRow
> QueryValue
> RollBackTrans
>
> Me dices que debo usar el metodo Execute del TDataSource para dicha
> intruccion (INSERT INTO), ahora bien, el TAdtDataSource hereda de
> TDbfDataSource que a su vez hereda de TDataSource que es el control que
> posee dicho metodo(execute), lo ejecuto no trabaja, logicamente sin emitir
> error,
>
>
> WITH OBJECT ::oDS := TAdsDataSource():New(Self)
> :cConnect := "C:CONTROINVDBFDatos"
> :cUser := "carlos"
> :cPassword := "ellakula"
> :lConnected := .T.
> :nFileType := afCDX
> :nServerType := asLOCAL
> :lUseDictionary := .f.
> cQuery := "INSERT INTO USUARIOS (USUARIO, NOMBRE, PASSW,
> FOTO) VALUES ('"+::oEDUsuario:Value +"', '" + ::oEdNombre:Value
> +"','"+::oEdClave:Value +"','"+::oEdFoto:Value+"')"
> :ExeCute(cQuery)
> END WITH
>
> Ya explique que con el metodo queryRow() almacena el dato pero daba un
> error, ahora que se supone que debo hacer}?
>
> Gracias
>
>
>
>
> Ignacio Ortiz escribió:
>> Muy Sr. mio,
>>
>> Los metodos Query??? solo se pueden utilizar con instrucciones tipo
>> SELECT
>> ...
>>
>> Para operaciones del tipo INSERT .. deberá utilizar el metodo Execute del
>> DataSource.
>>
>> Saludos,
>>
>> "Xailer Noticias" <carlosijc@icqmail.com> escribió en el mensaje
>> news:[email=43F3BC39.5090906@icqmail.com...]43F3BC39.5090906@icqmail.com...[/email]
>>> PARA USAR EL INSERT INTO, CUAL DE LOS TRES METODOS DEBO USAR O SI EXISTE
>>> ALGUNO ESPECIAL, ME REFIERO A QueryRow, QueryArray o QueryValue, con los
>>> tres me da el siguiente error:
>>>
>>> DBSELECTAREA(0)
>>> Registro de errores BASE/1002 Alias does not exist: ADSSQL
>>> &Reintentar
>>>
>>> Y aunque me agrega los valores pero?????
>>>
>>> Lo que tengo hecho es lo sieguiente:
>>>
>>> METHOD Bn1Click( oSender ) CLASS TForm1
>>> local ver, aDatos, cQuery, xValor, cQuery1, a
>>> WITH OBJECT ::oDS := TAdsDataSource():New(Self)
>>> :cConnect := "C:CONTROINVDBFDatos"
>>> :cUser := "carlos"
>>> :cPassword := "ellakula"
>>> :lConnected := .T.
>>> :nFileType := afCDX
>>> :nServerType := asLOCAL
>>> :lUseDictionary := .f.
>>> cQuery := "INSERT INTO USUARIOS (USUARIO, NOMBRE, PASSW,
>>> FOTO) VALUES ('"+::oEDUsuario:Value +"', '" + ::oEdNombre:Value
>>> +"','"+::oEdClave:Value +"','"+::oEdFoto:Value+"')"
>>> :QueryRow(cQuery)
>>> END WITH
>>> RETURN Nil
>>>
>>> Gracias de antemanos
>>>
>>