Jo det kan man godt.
Med venlig hilsen
Erling Damsgaard - Scanditek ApS - ed@scanditek.dk
{XAL:SQLRename}
// Scanditek ApS - Uden ansvar
#MacroLoad(SQL)
#MacroLoad(DATABASE_INFORMATION)
STR 3 &FromCompany
STR 3 &ToCompany
STR 10 &StartStr
INT &NTabs
INT &Table
INT &TableId
#IFNOT.SQL
RETURN 0
#ENDIF
#Prompt "Omd›b SQL regnskab",
#StrPrompt("Fra") GET(&FromCompany),
#StrPrompt("Til") GET(&ToCompany),
"-",
#StrPrompt("Skriv \"START\"") GET(&StartStr),
#PromptAbort(10,10)
SET &FromCompany = StrLTrim(StrRTrim( &FromCompany ))
SET &ToCompany = StrLTrim(StrRTrim( &ToCompany ))
IF &FromCompany == '' OR
&ToCompany == '' OR
&FromCompany == &ToCompany OR
&FromCompany == 'DAT' OR
&ToCompany == 'DAT' THEN
RETURN 0
ENDIF
IF &DataFile == &FromCompany THEN
RETURN 0 //
ENDIF
IF &StartStr <> 'START' THEN
RETURN 0
ENDIF
PRINT "Husk at SQL databasen vil lave en stor transaktion!"
PAUSE
PRINT "Starter rename '",&FromCompany,"' -> '",&ToCompany,"'..."
SET &NTabs = #Db_Dictionary(FILES)
FOR &Table = 1 TO &NTabs
SET &TableId = FileNo2Id(&Table)
IF #Db_File(FileId2Name(&TableId),File) == 0 THEN
PRINT &Table,'/',&NTabs,' : ',FileId2Name(&TableId)
SET SQLClear()
SET SQLExecute('UPDATE '+#SQLTableName2(FileId2Name(&TableId))+ ' SET DATASET = \'' + &ToCompany +'\' WHERE DATASET = \'' + &FromCompany + '\' ')
ENDIF
END
PRINT #XALSEQ
SET SQLClear()
SET SQLExecute('UPDATE '+#XALSEQ+' SET DATASET = \'' + &ToCompany +'\' WHERE DATASET = \'' + &FromCompany + '\' AND SEQID = 0')
PRINT #XALUTIL
SET SQLClear()
SET SQLExecute('UPDATE '+#XALUTIL+' SET DATASET = \'' + &ToCompany +'\' WHERE DATASET = \'' + &FromCompany + '\' ')
PRINT "F‘rdig"
PAUSE