ну не знаю... у меня есть апи к базе электронных компонентов... себе все миллиарды позиций все равно не вытянешь, да еще и наличие с ценой регулярно меняется.
AlikDex: ну, даже в ой статье есть merge join, который вполне может работать для одинаково отсортированных таблиц, соединяя их за один проход, без цикла в цикле (nested loops).
MaxKorz: не совсем так. null не чем не лучше, чем 3.1415926. просто значение примитивного типа. еще раз спрошу про то, зачем замыкание? лучше бы избавится от глобальной переменной вообще. ну, или не на null её проверять, а на state.
myspace: ну, принцип тот же - для именованных плейсхолдеров - заменяем на именованные с суффиксом-номером. для ненумерованных - заменяем на нужное количество знаков вопроса через запятую, но это сложно, если плейсхолдера больше одного.