Cómo Insertar registros a na tabla?

User avatar
Armando
Posts: 3271
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Been thanked: 2 times
Contact:

Re: Cómo Insertar registros a na tabla?

Post by Armando »

Mr. Rao:

It is a great solution, but what if the user wants to insert multiple records, let's say 6 records at a time ?

Thanks a lot, Best regards
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: Cómo Insertar registros a na tabla?

Post by nageswaragunupudi »

Image

Code: Select all | Expand

#include "fivewin.ch"
#include "adodef.ch"

//----------------------------------------------------------------------------//

function Main()

   local oCn, oRs
   local aInsert

   oCn   := Fw_OpenAdoConnection( "MYSQL,209.250.245.152,fwh,fwhuser,FiveTech@2022", .t. )
   oRs   := CreateTableFruits( oCn )

   // Right-click to insert new fruits
   aInsert  := { "APPLES", "APRICOT", "MELON", "DATES" }

   XBROWSER oRs TITLE "FRUITS" SETUP ( ;
      oBrw:bRClicked := { |r,c,f,o| InsertFruits( oRs, aInsert ), o:Refresh() } )

   oRs:Close()
   oCn:Close()

return nil

//----------------------------------------------------------------------------//

function CreateTableFruits( oCn )

   local oRs, v

   oCn:Execute( "DROP TABLE IF EXISTS fruits" )
   FWAdoCreateTable( "fruits", { { "fruit", "C", 15, 0 } }, oCn )

   oRs   := FW_OpenRecordSet( oCn, "fruits" )
   oRs:Sort := "id"
   for each v in { "Manzana", "Pera", "Naranja", "Mandarina", "Mango", "Banana", "Papaya", "Grape", "Guva", "Durian"  }
      oRs:AddNew( "fruit", v )
   next

return oRs

//----------------------------------------------------------------------------//

function InsertFruits( oRs, aFruits )

   local oCn      := oRs:ActiveConnection
   local nSave    := oRs:AbsolutePosition
   local nId, aList, aRows, cSql

   CursorWait()

   aList    := {}
   AEval( aFruits, { |c| AAdd( aList, { nil, c } ) } )

   aRows := RsGetRows( oRs )
   AEval( aRows, { |a,i| AAdd( aList, { nil, a[ 2 ] } ), ;
                         aList[ i, 1 ] := a[ 1 ] } )

   cSql  := SQL INSERT INTO fruits ( id, fruit ) ARRAY aList
   cSql  := "REPLACE" + SubStr( cSql, 7 )
   oCn:Execute( cSql )
   // done
   oRs:Requery()
   oRs:MoveLast()
   nId   := oRs:Fields( "id" ):Value
   oCn:Execute( "ALTER TABLE fruits AUTO_INCREMENT = " + LTrim( Str( nID + 1 ) ) )
   oRs:AbsolutePosition := nSave
   CursorArrow()

return nil

//----------------------------------------------------------------------------//

Regards

G. N. Rao.
Hyderabad, India
User avatar
Armando
Posts: 3271
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Been thanked: 2 times
Contact:

Re: Cómo Insertar registros a na tabla?

Post by Armando »

MR. Rao:

Excelent !.

Thank you

With Best regards
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Post Reply