INSERT SET o INSERt VALUES

User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: INSERT SET o INSERt VALUES

Post by Daniel Garcia-Gil »

Saludos

si estas usando dolphin, puedes usar el metodo insert

Code: Select all

Function Test()
    local aNombres
    aadd( aNombres, {"001", "NOMBRE 1"} )
    aadd( aNombres, {"002", "NOMBRE 2"} )
    aadd( aNombres, {"003", "NOMBRE 3"} )
    aadd( aNombres, {"004", "NOMBRE 4"} )
    aadd( aNombres, {"005", "NOMBRE 5"} )
    aadd( aNombres, {"006", "NOMBRE 6"} )
    aadd( aNombres, {"007", "NOMBRE 7"} )
    aadd( aNombres, {"008", "NOMBRE 8"} )
    aadd( aNombres, {"009", "NOMBRE 9"} )
    aadd( aNombres, {"010", "NOMBRE 10"} )

    TRY
        oCon:Insert( "clientes", {"clave", "nombre"}, aNombres )    
    CATCH
    END
RETURN
 
Para un solo registro

Code: Select all

oCon:hInsert( "clientes", {"clave" => "001", "nombre" => "nombre001" } )
 
se puede usar parametros en las sentencias sql, bien sea como arreglo o hash

Code: Select all

//con array
oCon:Execute("INSERT INTO clientes (clave,nombre) values (&1,&2)", { "001", "nombre001"})
 

Code: Select all

//con hash
oCon:Execute("INSERT INTO clientes (clave,nombre) values (&clave,&nombre)", { "clave" =>"001", "nombre" => "nombre001"})
 
la diferencia notable entre SET y VALUES en el insert es que con SET solo puedes incluir un registro, con VALUES multiples registros a ala vez
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: INSERT SET o INSERt VALUES

Post by acuellar »

Gracias Daniel

Muy buen aporte.

Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: INSERT SET o INSERt VALUES

Post by sysctrl2 »

Fernando, Carlos Mora, Daniel
muchas gracias
voy hacer las pruebas
hay les cuento,
saludos..
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
jnavas
Posts: 399
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela
Contact:

Re: INSERT SET o INSERt VALUES

Post by jnavas »

Saludos Cordiales
Para resolver diversos Motores de Base de datos y expecíficamente _ de tipo fecha y lógico, hice una clase llamada TTABLE lo cual utilizo de capa intermedia entre mi aplicacion con el gestor de base de datos, publicare parte de mi código:

oTable:=OpenTable("SELECT * FROM DPDIRAPL WHERE "+cWhere,.T.,oDb)

IF oTable:RecCount()=0
oTable:AppendBlank()
oTable:cWhere:=""

cWhereInc:="DIR_CODIGO"+GetWhere("=",cCodigo )+" AND "+;
"DIR_APLICA"+GetWhere("=",cAplica )+" AND "+;
"DIR_VERSIO"+GetWhere("=",nVersion)

nNumero:=EJECUTAR("SQLINCREMENTAL","DPDIRAPL","DIR_NUMERO",cWhereInc,oDb)

ELSE
nNumero:=oTable:DIR_NUMERO
ENDIF

oTable:Replace("DIR_FECHA" ,dFecha )
oTable:Replace("DIR_HORA" ,cHora )
oTable:Replace("DIR_CODIGO",cCodigo )
oTable:Replace("DIR_APLICA",cAplica )
oTable:Replace("DIR_VERSIO",nVersion)
oTable:Replace("DIR_CARPET",cCarpeta)
oTable:Replace("DIR_FILE" ,cFile )
oTable:Replace("DIR_SIZE" ,nSize )
oTable:Replace("DIR_NUMERO",nNumero )
oTable:Replace("DIR_TXT" ,lText )
oTable:Commit(oTable:cWhere)
oTable:End()
User avatar
jnavas
Posts: 399
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela
Contact:

Re: INSERT SET o INSERt VALUES

Post by jnavas »

Saludos Cordiales

Para si uso, he creado una clase TTABLE intermedia entre mi aplicacion y la Base de datos, asi puedo utilidar diversos gestores de Base de datos y adaptar la capa financiera. he utilizado con esta misma clase MySQL, SQLSERVER y ADS con tablas ADT.


oTable:=OpenTable("SELECT * FROM DPDIRAPL WHERE "+cWhere,.T.,oDb)

IF oTable:RecCount()=0
oTable:AppendBlank()
oTable:cWhere:=""

cWhereInc:="DIR_CODIGO"+GetWhere("=",cCodigo )+" AND "+;
"DIR_APLICA"+GetWhere("=",cAplica )+" AND "+;
"DIR_VERSIO"+GetWhere("=",nVersion)

nNumero:=EJECUTAR("SQLINCREMENTAL","DPDIRAPL","DIR_NUMERO",cWhereInc,oDb)

ELSE
nNumero:=oTable:DIR_NUMERO
ENDIF

oTable:Replace("DIR_FECHA" ,dFecha )
oTable:Replace("DIR_HORA" ,cHora )
oTable:Replace("DIR_CODIGO",cCodigo )
oTable:Replace("DIR_APLICA",cAplica )
oTable:Replace("DIR_VERSIO",nVersion)
oTable:Replace("DIR_CARPET",cCarpeta)
oTable:Replace("DIR_FILE" ,cFile )
oTable:Replace("DIR_SIZE" ,nSize )
oTable:Replace("DIR_NUMERO",nNumero )
oTable:Replace("DIR_TXT" ,lText )
oTable:Commit(oTable:cWhere)
oTable:End()
Post Reply