Показать сообщение отдельно
Старый 29.06.2006, 01:57   #65  
KSS is offline
KSS
Коллективное бессознательn ое
 
116 / 10 (1) +
Регистрация: 09.12.2002
Адрес: Москва
! Завтра забуду, поэтому предложу еще вариант
Сразу извиняюсь, что тестирование не по правилам - ночь на дворе, предлагаю просто в качестве идеи.

Выгрузку ниже делал дома, подключившись через интернет к терминальному серверу. Файл "111.xls" лежит у меня дома на диске "С", т.е. файл пишется через интернет.
Код ниже прошел за 59 секунд.
Тут использовались "самодельные" классы-оболочки АДО, но идея проста - берем АДОКомманд и пишем запрос "INSERT INTO".
Единственный момент - видимо, придется до начала процедуры задать имена столбцов обычным способом, а потом уже грузить данные.
CREATE COLUMN я не пербовал, но может и пройдет, зависит от драйвера, если пройдет, будет быстрее.

Код:
static void Job122(Args _args)
{
    ADOConnection connection;
    ADOCommand    command;
    int           i;

    int           timeFullStart, timeFullFinish, timeFullTotal;

    ;
    timeFullStart = timenow();

    connection = ADODB::establishConnection("C:\\111.xls", false);
    command    = new ADOCommand();
    command.ActiveConnection(connection);

    while(i<50000)
    {
        command.CommandText(strFmt("INSERT INTO [Лист1$] (Field1, Field2) VALUES (100000000000000000000, 20000000000000000)"));
        command.Execute();
        i++;
    }

    connection.Close();

    timeFullFinish = timenow();
    
    timeFullTotal = timeFullFinish - timeFullStart;
    
    info('Время выполнения, сек');
    info(int2str(timeFullTotal));
}
__________________
Жизнь такова, какова она есть и больше никакова.