Unnamed
Авг. 29, 2007 15:25:48
Доброго времени суток.
Подскажите.
Есть, очень много строк, что-то вроде:
cr.execute(“select name from spr_module where state = ‘ok’”)
Как поменять таблицу выборки, сделать, чтобы выборка проводилась не с таблицы “spr_module”, а, допустим, с “one_spr_module”, не меняя самой строки приведенной выше?
Есть что-то вроде алиасов, чтобы можно было присвоить в начале программы таблице “old_spr_module” алиас “spr_module” и не менять тысячи строк исходного кода?..
Ситуация такая.
Необходимо разделить в БД таблицы на несколько вариантов(копий):
было Табл_1, Табл_2…. Табл_N ,
стало Табл_1а, Табл_1б, Табл_1в, Табл_2а, Табл_2б, Табл_2в… и т.д.,
Как это сделать без серьезных изменений в исходных кодах и перебираний всех строк запросов?
shiza
Авг. 30, 2007 10:09:20
Есть такая штука - View называется.
Еще как вариант есть очень клевая технология - Find&Replace. =)
kovleon
Авг. 30, 2007 10:55:35
To shiza:
К сожалению, нужно запись проводить в таблицы, не только выборки. Есть байт код без исходников(мало, но есть), а что вних - не известно, может тоже, SQL выборки-изменения…
balu
Авг. 30, 2007 11:29:34
Unnamed
cr.execute(“select name from spr_module where state = ‘ok’”)
Как поменять таблицу выборки, сделать, чтобы выборка проводилась не с таблицы “spr_module”, а, допустим, с “one_spr_module”, не меняя самой строки приведенной выше?
Например, так:
tables =
for table in tables:
cr.execute(“select name from %s where state = ‘ok’” % table)
slav0nic
Авг. 30, 2007 19:35:41
balu, только
…
cr.execute(“select name from %s where state = ‘ok’”, (table, ))
так как бы безопасней и “по правилам” ;)
shiza
Авг. 31, 2007 01:20:17
kovleon
To shiza:
К сожалению, нужно запись проводить в таблицы, не только выборки. Есть байт код без исходников(мало, но есть), а что вних - не известно, может тоже, SQL выборки-изменения…
Хм. В байт-коде SQL запросы должны быть в виде строк.
Его можно легко декомпилировать - сделать Find&Replace и обратно скомпилировать ;)