{"id":19706475,"url":"https://github.com/hemulgm/sqlgenerator","last_synced_at":"2025-08-02T19:09:37.136Z","repository":{"id":223256976,"uuid":"759686604","full_name":"HemulGM/SQLGenerator","owner":"HemulGM","description":"SQL generator for Delphi","archived":false,"fork":false,"pushed_at":"2024-02-19T08:36:19.000Z","size":18,"stargazers_count":19,"open_issues_count":0,"forks_count":7,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-02-27T17:36:16.302Z","etag":null,"topics":["delphi","sql","sql-generator"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HemulGM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-19T06:22:04.000Z","updated_at":"2024-10-14T12:22:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"2ebda120-f880-4a53-a6b1-88a3b13fde93","html_url":"https://github.com/HemulGM/SQLGenerator","commit_stats":null,"previous_names":["hemulgm/sqlgenerator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HemulGM/SQLGenerator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HemulGM%2FSQLGenerator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HemulGM%2FSQLGenerator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HemulGM%2FSQLGenerator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HemulGM%2FSQLGenerator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HemulGM","download_url":"https://codeload.github.com/HemulGM/SQLGenerator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HemulGM%2FSQLGenerator/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268439663,"owners_count":24250671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["delphi","sql","sql-generator"],"created_at":"2024-11-11T21:35:44.155Z","updated_at":"2025-08-02T19:09:37.112Z","avatar_url":"https://github.com/HemulGM.png","language":"Pascal","readme":"# SQLGenerator\n\n```pascal\nuses\n  System.SysUtils,\n  System.TypInfo,\n  System.Rtti,\n  SQLG.Table in 'SQLG.Table.pas',\n  SQLG.Field in 'SQLG.Field.pas',\n  SQLG.Condition in 'SQLG.Condition.pas',\n  SQLG.Params in 'SQLG.Params.pas',\n  SQLG.Select in 'SQLG.Select.pas',\n  SQLG.CreateTable in 'SQLG.CreateTable.pas',\n  SQLG.Types in 'SQLG.Types.pas';\n\ntype\n  [TableName('user')]\n  TUser = class(TSQLTable)\n    [FieldName('id'),\n    UNIQUE,\n    PRIMARYKEY]\n    Id: TFGUID;\n    [FieldName('role_id')]\n    RoleId: TFGUID;\n    [FieldName('status')]\n    Status: TFInteger;\n    [FieldName('name')]\n    Name: TFString;\n  end;\n\n  [TableName('user_role')]\n  TUserRole = class(TSQLTable)\n    [FieldName('id')]\n    Id: TFGUID;\n    [FieldName('type')]\n    RoleType: TFInteger;\n    [FieldName('desc')]\n    Desc: TFString;\n    [FieldName('name'),\n    LENGTH(20)]\n    Name: TFVARCHAR;\n  end;\n\nprocedure Test;\nbegin\n  var User := TUser.Create;\n  var UserRole := TUserRole.Create;\n\n  var Params: TSQLParams;\n  var Sel :=\n    Select([User, UserRole.Desc.Table('ur').\u0026As('description')]).\n    From(User).\n    LeftJoin(\n    Select('*').\n    From(UserRole).Where(UserRole.RoleType = 1), 'ur').\n    on(User.RoleId = UserRole.Id.Table('ur')).\n    Where(not (User.Id = TGUID.NewGuid) or (User.Status in [1, 2, 3])).\n    Where(User.Status and 1 = 0).\n    Where(User.Name = 'Dan').\n    Where(User.Status in\n    Select(User.Status).From(User).Where(User.RoleId in [TGUID.NewGuid, TGUID.NewGuid])).\n    OrderBy([User.Name, DESC(User.Status)]).\n    GroupBy([User.Id]);\n\n  writeln(Sel.Build(Params));\n  writeln;\n  for var Param in Params do\n    writeln(Param.Key, ': ', Param.Value.TypeInfo.Name, ' = ', Param.ToString);\n\n  User.Free;\n  UserRole.Free;\nend;\n\nbegin\n  try\n    Test;\n  except\n    on E: Exception do\n      Writeln(E.ClassName, ': ', E.Message);\n  end;\n  Readln;\nend.\n\n```\n\noutput\n\n```\nSELECT user.*, ur.desc description\n FROM user\n LEFT JOIN (\n    SELECT *\n     FROM user_role\n     WHERE user_role.type = :p0) ur ON user.role_id = ur.id\n WHERE (NOT (user.id = :p1)) OR (user.status in (:p2, :p3, :p4)) AND user.status \u0026 1 = :p5 AND user.name = :p6 AND user.status in (\n    SELECT user.status\n     FROM user\n     WHERE user.role_id in (:p7, :p8))\n ORDER BY user.name, user.status DESC\n GROUP BY user.id\n\np0: Integer = 1\np1: TGUID = {4D8FD3C0-9972-4269-BBB6-34E3925EABE2}\np2: Integer = 1\np3: Integer = 2\np4: Integer = 3\np5: Integer = 0\np6: string = Dan\np7: TGUID = {2A37B58A-3B2F-4320-9850-A70AA70C3971}\np8: TGUID = {3FBC11F6-381F-4443-8592-1E5FC5CDF479}\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhemulgm%2Fsqlgenerator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhemulgm%2Fsqlgenerator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhemulgm%2Fsqlgenerator/lists"}