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
>>>
>>