Update Tabellen und Suchalgo

This commit is contained in:
2026-02-17 17:29:40 +01:00
parent ce89fccdb5
commit 441ba313aa
12 changed files with 131 additions and 70 deletions

View File

@@ -197,15 +197,38 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
case "search_parts": {
const { search_term, limit = 50 } = args;
const escaped = String(search_term).replace(/'/g, "''");
const pattern = `N'%${escaped}%'`;
const searchQuery = `
SELECT TOP ${parseInt(limit)}
'TEILE' AS TableName, Teil, Art, Gruppe, Bez, Bez2, Hersteller, WarenNr
FROM TEILE
WHERE
LOWER(CAST(Teil AS NVARCHAR(MAX))) LIKE LOWER('%${search_term.replace(/'/g, "''")}%')
OR LOWER(CAST(Bez AS NVARCHAR(MAX))) LIKE LOWER('%${search_term.replace(/'/g, "''")}%')
OR LOWER(CAST(Bez2 AS NVARCHAR(MAX))) LIKE LOWER('%${search_term.replace(/'/g, "''")}%')
OR LOWER(CAST(Hersteller AS NVARCHAR(MAX))) LIKE LOWER('%${search_term.replace(/'/g, "''")}%')
SELECT TOP ${Math.max(1, parseInt(limit, 10) || 50)}
t.Teil,
t.Bez,
t.Bez2,
t.Ben7,
t.Ben8,
t.Hersteller,
txt.Text AS [Text],
ts.PrsVk AS PrsVK
FROM TEILE t WITH (NOLOCK)
OUTER APPLY (
SELECT TOP 1 [Text]
FROM TEXT WITH (NOLOCK)
WHERE TextId = t.MemoID
ORDER BY LfdNr
) txt
OUTER APPLY (
SELECT TOP 1 PrsVk
FROM TSSAEF WITH (NOLOCK)
WHERE Teil = t.Teil
ORDER BY ISN
) ts
WHERE
t.Teil LIKE ${pattern} COLLATE SQL_Latin1_General_CP1_CI_AS
OR t.Bez LIKE ${pattern} COLLATE SQL_Latin1_General_CP1_CI_AS
OR t.Bez2 LIKE ${pattern} COLLATE SQL_Latin1_General_CP1_CI_AS
OR t.Ben7 LIKE ${pattern} COLLATE SQL_Latin1_General_CP1_CI_AS
OR t.Ben8 LIKE ${pattern} COLLATE SQL_Latin1_General_CP1_CI_AS
OR t.Hersteller LIKE ${pattern} COLLATE SQL_Latin1_General_CP1_CI_AS
`;
const rows = await runQuery(searchQuery);
return {