johnidm / johnidm/QueryDSL4Delphi

Informações quanto a implementação

Open
#5 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Pascal
Stars
4
Forks
4
PR merge metrics
No merged PRs in 30d

Description

Exemplo de como deve ser implementado.

delete from tabela where campo01 = 01 or campo > 02
Delete()
.From( 'tabela' )
.Where().Field( 'campo01' ).Equal( '01' ).Or().Field( 'campo02' ).Larger( 02 )

insert into tabela( campo01, campo02 ) values ( 01, 02 )
Insert()
.Into( 'tabela' )
.Field('campo01').Value( 01 )
.Field('campo02').Value( 02 )

update tabela set campo01 = 01, campo02 = 02 where campo03 < 03 and campo04 in ( 100, 102 )
Update( 'tabela' )
.Field( 'campo01' ).Value( 01 )
.Field( 'campo02' ).Value( 02 )
.Where().Field( 'campo03' ).Less( 03 ).And()
.Field( 'campo04' ).In( [ 100, 102 ] )

select campo01, campo02 from tabela where campo01 = 01 or campo02 <> 02 order by campo01, campo02
Select()
.Field( 'campo01' )
.Field( 'campo02' )
.From( 'tabela' )
.Where
.Field( 'campo01' ).Equal( '01' ).Or
.Field( 'campo02' ).Diff( '02' )
.OrdeBy( ['campo01', 'campo02'] )

select tabela01.campo01 from tabela01 inner join tabela02 on tabela01.campo01 = tabela02.campo02
Select()
.Field'tabela01.campo01')
.From( 'tabela01' )
.Inner().Join('tabela02').On( 'tabela01.campo01' , 'tabela02.campo02' )

Usar a linguagem DSL para fazer as implementações

Materiais que podem ser utilizados
http://sourceforge.net/projects/directsql/?source=recommended
http://sourceforge.net/projects/gasqlparser/?source=recommended
http://sourceforge.net/projects/parserbuilder/
http://www.scifac.ru.ac.za/coco/
http://www.grendelproject.nl/dyacclex/
http://cc.embarcadero.com/Item/26667
https://code.google.com/p/dcocor/
http://sourceforge.net/projects/cocodelphiide/?source=recommended
http://blog.marcocantu.com/blog/introducing_dsl.html

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.