[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 594: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 650: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1110: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1110: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1110: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
Fórum Xmaker • Executar comandos no XMaker 6
Página 1 de 1

Executar comandos no XMaker 6

Enviado: Julho 5th, 2011, 3:18 pm
por ronaldobraz
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.

Re: Executar comandos no XMaker 6

Enviado: Julho 5th, 2011, 3:56 pm
por Gustavo
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.