Descrição:
Classe de bulkinsert via insertInto. Os dados são recebidos pela aplicação, que sabe o momento certo de disparar o insert no banco.
Métodos:
New()
Sintaxe:
FwBulk():New()
Descrição:
Método de inicialização da classe
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
cTable | Carácter | tabela que será utilizada no processo de bulkinsert | X |
nLimit | Numérico | Quantidade de registro que será utilizado no flush dos dados. Opcional. Default 600 |
Retorno:
Objeto da classe FWBulk
SetFields(aFields)
Sintaxe:
FWBulk():SetFields( aFields )
Descrição:
Indica para a classe FWBulk quais os campos serão utilizados no processo
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
aFields | Array | Array dos campos, onde {{Campo},{Campo}}. Pode-se enviar como conteúdo o retorno da função dbstruct. | X |
Importante!
A ordem desse array deve ser a mesma dos dados informados no método AddData.
SetTable( cTable )
Sintaxe:
FWBulk():SetTable( cTable )
Descrição:
Indica o nome da tabela no banco de dados
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
cTable | Carácter | Nome da tabela do banco de dados | X |
AddData( aData )
Sintaxe:
FWBulk():AddData( aData )
Descrição:
Adiciona dados ao bulk. Caso o limite de dados seja alcançado, também faz o flush dos dados.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
aData | Array | Array dos dados que serão persistidos no banco de dados, onde {valor,valor} | X |
Importante!
A ordem desse array deve ser a mesma dos dados informados no método SetFields.
Retorno:
lRet lógico, verdadeiro se conseguiu adicionar os dados ou fazer o flush
Flush()
Sintaxe:
FWBulk():Flush()
Descrição:
Faz o flush dos dados no sistema
Retorno:
lRet lógico, verdadeiro se conseguiu fazer o flush dos dados, caso contrário o erro pode ser resgatado pelo método GetError().
Close()
Sintaxe:
FWBulk():Close()
Descrição:
Finaliza o Bulk no sistema e atualiza a tabela. Caso existem dados em cache, faz o flush dos mesmos.
Retorno:
lRet lógico, verdadeiro se conseguiu fazer o flush dos dados, caso contrário o erro pode ser resgatado pelo método GetError().
Destroy()
Sintaxe:
FWBulk():Destroy()
Descrição:
Limpa o conteúdo do objeto da classe
Count()
Sintaxe:
FWBulk():Count()
Descrição:
Informa quantas linhas de dados já foram adicionadas no cache em espera para o flush
Retorno:
nCount numérico, quantidade de linhas de dados adicionadas ao cache
GetError()
Sintaxe:
FWBulk():GetError()
Descrição:
Método que retorna a string do último erro apresentado
Retorno:
cError string que contém o último erro apresentado
Reset()
Sintaxe:
FWBulk():Reset()
Descrição:
Limpa toda a classe retornando ao estado inicial
CanBulk()
Sintaxe:
FWBulk():CanBulk()
Descrição:
Indica se Bulk pode ser utilizado
Importante!
Não é possível a utilização desta classe em ambiente com banco SQLite!
Retorno:
lCanUse lógico, se verdadeiro, o bulk está disponível para uso.
Exemplo:
User Function myBulk() Local oBulk as object Local aStruct as array Local nX as numeric aStruct := {} aAdd( aStruct, { 'FIELD1', 'C', 10, 0 } ) aAdd( aStruct, { 'FIELD2', 'N', 10, 2 } ) aAdd( aStruct, { 'FIELD3', 'M', 10, 0 } ) aAdd( aStruct, { 'FIELD4', 'D', 8, 0 } ) aAdd( aStruct, { 'FIELD5', 'L', 1, 0 } ) FWDBCreate( 'BULKTBL', aStruct , 'TOPCONN' , .T.) oBulk := FwBulk():New('BULKTBL') oBulk:SetFields(aStruct) For nX := 1 to 5 oBulk:AddData({cValToChar(nX),(nX,nX),cValToChar(nX),Date(),mod(nX,2)==0}) Next oBulk:Close() oBulk:Destroy() oBulk := nil Return |