Histórico da Página
Pagetitle | ||||
---|---|---|---|---|
|
Altera a estrutura de uma tabela.
Sintaxe
Bloco de código | ||
---|---|---|
| ||
TCAlter( < |
...
cTable |
...
>, < aEstruturaAtual |
...
>, < |
...
aEstruturaNova >, [ @nErro ] ) |
...
|
Parâmetros
...
Nome | Tipo | Descrição | Obrigatório | Referência | ||
---|---|---|---|---|---|---|
cNome cTable | Caracter caractere | Indica o nome da tabela que será alterada. | X | |||
aEstruturaAtual | Vetor vetor | Indica o array que contém as informações dos campos atuais da tabela. | X | |||
aEstruturaNova | Vetorvetor | Indica o array que contém a nova estrutura desejada para a tabela. | .X | |||
nErro | Numériconumérico | Caso ocorra algum erro na alteração da estrutura, o número do erro do DBAccess será retornado através desta variável | . | X |
Retorno
Nome | Tipo | Descrição |
---|---|---|
lRet |
...
lógico |
...
Retorna .T. |
...
se a alterção for realizada com sucesso |
...
, caso contrário, retorna .F. |
Caso, o retorno seja falso (.F.), deve-se verificar <nErro>. Se <nErro> ainda for nulo (NIL), a instrução de alteração da estrutura não passou pela pré-validação do Protheus, não sendo enviada ao banco. Caso não seja NIL, a instrução foi enviada ao banco de dados, e não obteve sucesso, sendo retornado na propriedade <nErro> o número da ocorrência do DBAccess relacionada ao erro.
Observações
Informações | ||||||
---|---|---|---|---|---|---|
| ||||||
|
|
...
A função determina internamente as ações a serem tomadas para adequar a estrutura atual para a nova estrutura informada, mantendo os dados na tabela. Nesta operação, dependendo do SGDB em questão, um ou mais índices existentes para a tabela podem ser apagados para que a operação seja completa. |
...
Ao comparar as estruturas, são determinadas originalmente quatro ações para cada campo da estrutura |
...
...
|
...
|
...
...
|
...
|
...
...
|
...
|
...
|
Exemplos
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
USER FUNCTION |
Exemplo
...
ex_TCAlter() |
...
Local cTableNAme := "TTABLE" |
...
Local nTopErr := NIL |
...
// conecta com o dbaccess |
...
nStatus := |
...
TCLink() If nStatus < 0 |
...
UserException("TOPCONN - Falha de conexao ["+str(nStatus,4)+"]") |
...
Endif // Array com a antiga estrutura |
...
aStru := {} |
...
aadd(aStru,{"CPO01","N",8,0}) |
...
aadd(aStru,{"CPO02","N",10,0}) |
...
aadd(aStru,{"CPO03","D",8,0}) |
...
// Cria a tabela para o teste |
...
DbCreate(cTableName,aStru,"TOPCONN") |
...
// Array com a nova estrutura |
...
aNewStru := {} |
...
aadd(aNewStru,{"CPO01","C",8,0}) |
...
aadd(aNewStru,{"CPO02","N",10,0}) |
...
aadd(aNewStru,{"CPO03","D",8,0}) |
...
bRet := TCAlter(cTableNAme,aStru,aNewStru, @ |
...
nTopErr) |
...
If !bRet |
...
...
MsgInfo(tcsqlerror(),"Erro no TCAlter!") |
...
Endif
RETURN
|