Показать сообщение отдельно
Старый 18.11.2002, 15:58   #4  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Данные действительно не удаляются:
Реальная компания:
PHP код:
void delete()
{
.....
        if (
this.validateDelete())
        {
            if (
SysDataArea::delete(dataAreaId))
            {
                
super();
            }

Виртуальная компания:
PHP код:
void delete()
{
.....
            if (
sysDataArea::askDelete(dataAreaId))
            {
                
super();
                
delete_from virtualDataAreaList
                    where virtualDataAreaList
.virtualDataArea == dataAreaId;
            }

Штатной возможности ИМХО не существует. Это реализуется несколькими строчками кода:

PHP код:
void deleteCompanyData(CompanyId pFromCompanyboolean showProgress true)
{
    
#macrolib.AviFiles
    
Connection              connection;
    
Statement               stmt;
    
Dictionary              dictionary;
    
DictTable               dictTable;
    
tableId                 nextTableId 0;
    
int                     retCdetableCnttabTot;
    
str                     sqls;
    
str                     fldStr;
    
SysOperationProgress    sysOperationProgress;
    ;

    
connection = new Connection();
    
stmt connection.createStatement();
    
dictionary = new Dictionary();
    if (
showProgress)
    {
        
nextTableId dictionary.tableNext(nextTableId);
        
tabTot 0;
        while (
nextTableId)
        {
            
dictTable = new DictTable(nextTableId);
            if (
dictTable.dataPrCompany() &&
                
dictTable.enabled() &&
                !
dictTable.isTmp() &&
                
dictTable.isSql() &&
                !
dictTable.isMap())
                
tabTot++;
            
nextTableId dictionary.tableNext(nextTableId);
        }
        
sysOperationProgress = new SysOperationProgress();
        
sysOperationProgress.setCaption('Удаление данных компании  ' pFromCompany);
        
sysOperationProgress.setAnimation(#AviFileCopy);
        
sysOperationProgress.setTotaltabTot );
    }

    
tableCnt 1;
    
nextTableId 0;
    
nextTableId dictionary.tableNext(nextTableId);
    while (
nextTableId)
    {
        
dictTable = new DictTable(nextTableId);
        if (
dictTable.dataPrCompany() &&
            
dictTable.enabled() &&
            !
dictTable.isTmp() &&
            
dictTable.isSql() &&
            !
dictTable.isMap())
        {
            if (
showProgress)
                
sysOperationProgress.setTextstrFmt("Удаление данных из таблицы "int2str(tableCnt),
                                            
int2str(tabTot), dictTable.name(DbBackend::SQL)));
            
sqlS 'DELETE FROM '+dictTable.name(DbBackend::SQL)+
                            
' WHERE DATAAREAID = \''+pFromCompany+'\'';
            
stmt.executeUpdate(sqlS);

            
tableCnt++;
            if (
showProgress)
                
sysOperationProgress.setCounttableCnt );
        }
        
nextTableId dictionary.tableNext(nextTableId);
    }

Пользуйтесь
__________________
С уважением, Игорь Ласийчук.