1 Востаннє редагувалося Romanvolja (Сьогодні 19:15:56)

Тема: Довжина рядка SQL запиту

Підкажіть будь-ласка чи є обмеження у величині рядка SQL запиту???
І чи є можливість його збільшити???
база даних Access 2003 року
SQL запити пишу в Delphi

adoQrMainCoins.SQL.Add('??? ')

2

Re: Довжина рядка SQL запиту

Повинно бути 65536 байт, тобто якщо 2 байти на символ то 32768 символів на запит.

Ось як можна при потребі сплітити запити:

adoQrMainCoins.SQL.Clear;
adoQrMainCoins.SQL.Add('SELECT ID, Name, Description'); 
adoQrMainCoins.SQL.Add('FROM Coins'); 
adoQrMainCoins.SQL.Add('WHERE Value > 1000'); 

Або ж використовувати в'юхи (view).

3 Востаннє редагувалося Romanvolja (Сьогодні 21:24:57)

Re: Довжина рядка SQL запиту

frz написав:

Повинно бути 65536 байт, тобто якщо 2 байти на символ то 32768 символів на запит.

Ось як можна при потребі сплітити запити:

adoQrMainCoins.SQL.Clear;
adoQrMainCoins.SQL.Add('SELECT ID, Name, Description'); 
adoQrMainCoins.SQL.Add('FROM Coins'); 
adoQrMainCoins.SQL.Add('WHERE Value > 1000'); 

Або ж використовувати в'юхи (view).

Дякую за інформацію.

Для вирівнювання тексту запиту я ще натикав пробілів то вони також йдуть як символ??

    'amsMainCoins.IDMainCoins,                    msMainCoinGain.MainCoinGain, '+
    'msMainDateGain.MainDateGain,               msMainCoinSource.MainCoinSource, '+
    'msTypeCompani.TypeCompani,                msMainProviderCoin.MainProviderCoin, '+

може краще переробити таким чином
   

    'amsMainCoins.IDMainCoins, '+                   ' msMainCoinGain.MainCoinGain, '+

4

Re: Довжина рядка SQL запиту

Пробіли це теж символ. Для форматування використовувати пробіли теоретично можна, але корисного навантаження вони не несуть.

Так само невідомо чи запитання про максимальну кількість символів предметне, тобто чи вже досягли максимуму. Якщо так, тоді просто можна розділити запит на декілька рядків, як показано вище. Але такі гігантські запити рідко зустрічаються. Виникає запитання, навіщо. Гігантські запити важко мейнтейнити, варто подумати як спростити.

5 Востаннє редагувалося Torbins (Сьогодні 23:22:06)

Re: Довжина рядка SQL запиту

Перший раз чую, щоб SQL.Add('??? ') мав якісь особливі обмеження на довжину. Стандартне обмеження на довжину рядків в Делфі - 2 Гб. Це обмеження стосується усіх рядків, не лише параметру SQL.Add.
Що стосується обмеження в 65 Кб, то ви напевне плутаєте з VCL компонентами типу Мемо. Мемо є тонкою обгорткою над старими віндовими контролами, і у нього дійсно є обмеження на довжину рядка, яке накладає сама вінда.