Executar comandos no XMaker 6

Destinado ao auxílio e Troca de informações sobre a ferramenta Xmaker
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
ronaldobraz
Mensagens: 49
Registrado em: Fevereiro 3rd, 2011, 12:47 pm
Contato:

Executar comandos no XMaker 6

Mensagempor ronaldobraz » Julho 5th, 2011, 3:18 pm

Caros colegas,

Alguem saberia me dizer como executar o seguinte comando
de dentro do XMaker 6 (Inicializar um generator):
SET GENERATOR GEN_ESTOQUE TO 0.

Gustavo
Mensagens: 244
Registrado em: Dezembro 22nd, 2010, 1:05 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: Executar comandos no XMaker 6

Mensagempor Gustavo » Julho 5th, 2011, 3:56 pm

Olá,

Para alterar um valor de um "Generator" é necessário utilizar a seguinte expressão em SQL:
set generator <nome_do_generator> to <valor>;

Para uma maior padronização um método na unit "Tabela.Pas" pode ser criado para processar essas alterações, exemplo:

Declare o método "Altera_AutoIncremento", exemplo:

procedure CriaTabela(CriarIndices: Boolean = True);
function AutoIncremento(Campo: String; Atribui: Boolean = True; Incremento: Integer = 1): Integer;
function Altera_AutoIncremento(Campo: String; Valor: Integer = 0): Boolean;
procedure AddIndex(const Name, Fields: string; Options: TIndexOptions;
const DescFields: string = '');



Copie o método abaixo para a unit


function TTabela.Altera_AutoIncremento(Campo: String; Valor: Integer = 0): Boolean;
var
sqlGen : TIBSQL;
NomeG: String;
begin
{$IFDEF IBX}
sqlGen := TIBSQL.Create(Database);
sqlGen.Transaction := Transaction;
try
NomeG := UpperCase(NomeTabela + '_' + Campo + '_GEN');
sqlGen.SQL.Text :=
'Set Generator ' + NomeG + ' to '+IntToStr(Valor);
sqlGen.Prepare;
sqlGen.ExecQuery;
Altera_AutoIncremento := True;
finally
sqlGen.Free;
end;
{$ELSE}
Altera_AutoIncremento := True;
{$ENDIF}
end;


** Como utilizar:

TabGlobal.DCLIENTES.Altera_AutoIncremento('CLI_CODIGO', 0);

Faça a chamada do método "Altera_AutoIncremento", passe os parâmetros: <Nome do Campo> e <Valor>, o parâmetro <Valor> é opcional, o método assume o valor 0(Zero) com default.
Att,

Gustavo Barreto
;)


[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Voltar para “Xmaker”

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 76 visitantes