Início rápido
Pré-requisitos
- Projeto Delphi/Lazarus com units do FluentSQL no path.
- Escolha do driver adequado (por exemplo Firebird, MySQL, MSSQL) na inicialização da query.
Exemplo mínimo
O ponto de entrada recomendado é Query(ADialect). Exemplo:
uses FluentSQL;
var
SQL: string;
begin
SQL := Query(dbnFirebird)
.Select
.Column('ID')
.Column('NOME')
.From('CLIENTES')
.Where('ATIVO').Equal(1)
.AsString;
end;
Exemplo DDL
Para gerar comandos de definição de dados (DDL), utilize a fábrica Schema(ADialect):
uses FluentSQL;
var
LSql: string;
begin
LSql := Schema(dbnPostgreSQL).CreateTable('USUARIOS')
.ColumnInteger('ID').PrimaryKey
.ColumnVarChar('NOME', 100).NotNull
.ColumnBoolean('ATIVO').DefaultValue(True)
.AsString;
end;
Comando MERGE (v1.5.0+)
Utilize o builder de MERGE para operações de sincronização (UPSERT) de forma fluente:
uses FluentSQL;
var
LMerge: string;
begin
LMerge := Query(dbnMSSQL)
.Merge
.Into('Target', 'T')
.Using('Source', 'S')
.On('T.ID = S.ID')
.WhenMatched.Update(['T.VALOR = S.VALOR'])
.WhenNotMatched.Insert(['ID', 'VALOR'], ['S.ID', 'S.VALOR'])
.AsString;
end;
SQL e parâmetros
- Use
.AsStringpara obter o texto SQL gerado. - A propriedade/coleção
Paramsexposta pela query deve ser usada para fazer o binding na mesma ordem dos placeholders da string. - Com UNION / UNION ALL / INTERSECT e parâmetros nos dois ramos, a partir da v0.2.0 a coleção visível é uma visão mesclada (
TFluentSQLMergedParamsemFluentSQL.Params.pas), alinhada à serialização que reindexa placeholders no ramo secundário (UnionRemapBranchSQLemFluentSQL.Serialize.pas).