RU/2: Форум. Общие вопросы. : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > Лень, конечно. Я Рекс не знаю. На нем никогда ничего серьезного не делал. Слабо представляю, как из него обращаться с MySQL (если знаешь, скажи - интересно - может пригодится когда-нибудь). > Все мануалы и библиотеки здесь http://rexxsql.sourceforge.net > Тебе нужны будут для MySQL - скачай их из раздела Download rxsql25_my_os2.zip > > > > Если есть желание поучить меня Рексу :) , пришли скрипт... > > --- cut here --- > /* Рыба. Принцип прост > - выбираем из базы данные, содержащие подстроку string1 > - заменяем string1 на string2 (допускается любое число замен) в > каждой записи > - апдейтим базу построчно > - если надо, то добавляем commit самостоятельно */ > /****************************************************************/ > > call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' > call SysLoadFuncs > call RXFuncAdd 'SQLLoadFuncs','REXXSQL','SQLLoadFuncs' > call SqlLoadFuncs > > /* здесь говорим что на что менять */ > > string1='old string' > string2='new string' > l=length(string1) > > /* подключимся к БД как user/pass */ > > rc = sqlconnect("linkname","user","pass","DBname") > > /* дальше готовим запросы для поиска и для замены в таблице website > содержимого столбца html, где есть искомые строки 'old string' */ > > query="select rowid, html from website where content like "||string1 > upd="update website set html="||newdata||" where rowid=q1.rowid" > > /* Если не выбрано, то */ > If sqlcommand('q1',query) < 0 Then DO > rc=sqldisconnect("DBname") > Call SqlDropFuncs > Call SysDropFuncs > say "NO DATA" > exit > end > > /* Заменяем строку на новую */ > l=length(string1) > do j=1 to q1.rowid.0 > newdata='' > i=1 > do x=1 > p=pos(string1,q1.html.j,i) > if p=0 then do > newdata=newdata||substr(q1.html.j,i) > leave > end > newdata=newdata||substr(q1.html.j,i,p-i)||string2 > i=p+l > end > If sqlcommand('q2',upd) < 0 Then say error > end > > > rc=sqldisconnect("DBname") > > Call SqlDropFuncs > Call SysDropFuncs > Drop q1,newdata,query,upd > exit > > --- cut here --- > > > Кстати, риски возникают, если этот скрипт обрушит что-то, восстанавливать придется со старого бэкапа. > Ну так попробуй на "кошке" - сделай новую таблицу create table xxx as select * from yyy where ... > , где будет пять-шесть записей, погоняй скрипт, при удачном решении применяй уже к живому. Кстати, MySQL у меня нет, только оракул, так что возможны нюансы. >
_, _, _,
/ \ (_ / ~ )
\ / , ) / /
~ ~ ~~~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.