Skip to content

Небольшой класс генерирующий текст запроса, поддерживается диалект MS SQL. Что то похожее на jooq.

License

Notifications You must be signed in to change notification settings

EvgSychev/SQLRequestBuilder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SQLRequestBuilder

Небольшой класс генерирующий текст запроса, поддерживается диалект MS SQL. Что то похожее на jooq.

Например запрос:

SELECT *  
FROM DimEmployee  
ORDER BY LastName

Можно получить следущий образом (код первой версии), предположим что обработка включена в конфигурацию:

SQLRequestBuilder = DataProcessorManager.SQLRequestBuilder.Create();
SQLRequestText = SQLRequestBuilder.Select("*").From("DimEmployee").OrderBy("LastName").RequestText();

Пример посложнее:

SELECT Name, ProductNumber, ListPrice AS Price
FROM Production.Product 
WHERE ProductLine = 'R' AND DaysToManufacture < 4
ORDER BY Name ASC

1C Enterpise:

SQLRequestBuilder = DataProcessorManager.SQLRequestBuilder.Create();
SQLRequestText = SQLRequestBuilder.Select("Name, ProductNumber")
	.Field("ListPrice","Price")//такая форма записи поля используется для задания псевдонима и если в тексте поля используются запятые
.From("Production.Product")
.Where("ProductLine = 'R'")
	.Condition("DaysToManufacture < 4")//ещё одно условие
.OrderBy("Name ASC").RequestText();

Пример с select into:

IF OBJECT_ID (N'#Bicycles',N'U') IS NOT NULL
DROP TABLE #Bicycles
SELECT * 
INTO #Bicycles
FROM AdventureWorks2012.Production.Product
WHERE ProductNumber LIKE 'BK%'

1C Enterpise:

SQLRequestBuilder = DataProcessorManager.SQLRequestBuilder.Create();
SQLRequestText = SQLRequestBuilder
._If("OBJECT_ID (N'#Bicycles',N'U') IS NOT NULL")// слово if зарезервировано
.Drop()
.Table("#Bicycles")
.Select("*")
.Into("#Bicycles")
.From("AdventureWorks2012.Production.Product")
.Where("ProductNumber LIKE 'BK%'")
.RequestText();

About

Небольшой класс генерирующий текст запроса, поддерживается диалект MS SQL. Что то похожее на jooq.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published