Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
user function test1()
  Local nHandle1 := TCLink( "MSSQL/DSN1", "127.0.0.1", 7890 )
  Local cTable1  := "MYTABLE"
  Local cRDD     := "TOPCONN"
  Local aStruct  := {}
  Local aBlocks  := {}
  Local aValues  := {}
  Local nI       := 0
  Local nJ       := 0
  Local nLen     := 0
  Local nRecs    := 0
  Local xValue
  
  // Cria a tabela
  DBCreate( cTable1, { { "CPOC", "C", 10, 0 }, ;
                       { "CPON", "N",  3, 0 }, ;
                       { "CPOD", "D",  8, 0 }, ;
                       { "CPOL", "L",  1, 0 }, ;
                       { "CPOM", "M", 20*1024, 0 } }, cRDD )
  
  // Abre a tabela 1 em modo exclusivo criando uma área de trabalho
  DBUseArea( .T., cRDD, cTable1, (cTable1), .F., .F. )
  
  // Pega a estrutura da tabela
  aStruct := DBStruct()
  nLen    := Len( aStruct )
  
  // Pega um codeblock para cada campo do tabela passando o nome do campo
  for nI := 1 to nLen
    AAdd( aBlocks, FieldBlock( aStruct[nI][1] ) )
  next nI
  
  // Define os valores do registro dos registros que serão inseridos
  AAdd( aValues, { "AAA", 123, Date(), .T., Replicate( "A", 20*1024 ) } )
  AAdd( aValues, { "BBB", 321, Date() + 10, .F., Replicate( "B", 20*1024 ) } )
  nRecs := Len( aValues )
  
  // Insere um registro
 os registros
  for nI := 1 to nRecs
    DBAppend( .F. )
    
    // Faz o Eval do bloco de código informando o valor
    // Isso irá fazer a atribuição do valor ao campo
    for nInJ := 1 to nLen
      Eval( aBlocks[nInJ], aValues[nI][nJ] )
    next nInJ
    
    DBCommit()
  next nI
  
  // Vai para o primeiro registro
  DBGoTop()
  
  while !eof()
    // Exibe o conteúdo de cada campo do registro
    for nI := 1 to nLen
      conout( Eval( aBlocks[nI] ) )
    next nI
    
    DBSkip()
  enddo
  
  // Fecha a área de trabalho
  DBCloseArea()
  
  // Apaga a tabela no SGBD
  TCDelFile( cTable1 )
  
  // Desconecta
  TCUnlink( nHandle1 )
return

...