2017-02-06 27 views
1

В свободной форме RPG с помощью встроенного SQL, я определил это для моих вариантов SQL:RPG встроенный набор SQL вариант коммит = * CS

exec sql 
set option commit=*CS, 
datfmt=*iso, 
closqlcsr=*endmod; 

Если я указываю commit=*CS, мне нужно указать WITH CS на моем SQL выберите или это принято, поскольку я указал его в параметре set?

Если я указываю commit=*none, а затем указать WITH CS на моем SQL SELECT заявление будет ли WITH CS вступит в силу, так как на моем множестве вариант фиксации Я сказал *none?

ответ

1

Оператор set option устанавливает значение по умолчанию для всех операторов в модуле.

Это значение по умолчанию может быть отменено по предложению WITH в отдельном заявлении.

Так с

exec sql 
set option commit=*CS, 
datfmt=*iso, 
closqlcsr=*endmod; 

заявления без пункта WITH будет использовать контроль обязательств и уровень изоляции стабильности курсора. В заявлении с WITH NC не будет использоваться управление фиксацией, а в заявлении с WITH RS будет использоваться контроль за выполнением обязательств и степень стабильности уровня изоляции.

Примечание: closqlcsr=*endmod может повредить работу. Он обычно используется в качестве бандажа для плохо разработанных и/или устаревших приложений.

+0

'closqlcsr = * endmod' может или не повредит производительность. Лучше всего это указать, но мы пока не можем сказать от OP. Очень часто лучше не указывать его. – user2338816