=Afields(laCampos)
E altero o Próximo valor com :ALTER TABLE MinhaTabela ALTER COLUMN MeuCampoAutoInc I NOT NULL AUTOINC NEXTVALUE nProximoValorDesejado STEP 1O Maior problema que estou tendo agora é o seguinte :
Estrutura do Nota.dbf id_nota I (autoinc) Chave Primária numero C 10 data D 8 .... outros campos .... Estrutura do nota_prd.dbf id_nota_prd I (AutoInc) Chave Primária id_nota I Chave Estrangeira ... outros campos de interesse diverso .....Veja que eu tenho uma integridade Referencial que não permite que eu insira um campo no nota_prd.dbf, que não tenha um equivalente no nota.dbf.
USE nota IN 0 SHARED USE nota_prd IN 0 SHARED SET multilocks on IF CursorSetProp("Buffering",5,"nota") IF !CursorSetProp("Buffering",5,"nota_prd") * tratamento de erro por não bufferizar a tabela * ENDIF ENDIF BEGIN TRANSACTION ***** gostaria de trocar este codigo por um INSERT SQL. Como Fazer ? ***** O grande problema e a recuperação do valor de id_nota. Pois se fizer com INSERT SQL,teria que executar um SELECT SQL, ***** para recuperar este valor. SELECT nota APPEND BLANK REPL numero WITH lcNumero *** REPL em todos os campos com os devidos valores lnId_nota = id_nota && pego o valor da chave primaria para alimentar a nota_prd lGravou = TableUpdate(.T.,.T.,"nota") ********* IF lGravou FOR i=1 TO 10 && com este exemplo tenho 10 itens na nota INSERT INTO nota_prd(id_nota,<lista de outros campos>) VALUES (lnId_nota,<outros campos>) lGravou = TableUpdate(.T.,.T.,"nota_prd") IF !lGravou EXIT && no caso de gerar um erro sai do loop ENDFOR ENDFOR ENDIF IF lGravou END TRANSACTION ELSE ROLLBACK TableRevert(.T.,"nota") TableRevert(.T.,"nota_prd") Wait Windo [Mensagem para o usuario alertando o erro na gravacao] ENDIF>