Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

формирование INSERTов

9.4K
15 сентября 2007 года
vitalik_4
37 / / 12.11.2006
Пожадуйста подскажите. Копирую данные из одной БД в другую. Пока делаю так:
Код:
static int CopyToTMP()
        {
            MySqlConnection conn = GetConnection(true);
            string comand = "SELECT ..."
            string comand1 = "SELECT count(*) ...";
            MySqlCommand cmd = new MySqlCommand(comand1, conn);
           
            //добавляем параметры для запроса к TMP
            cmd.Parameters.Add(new MySqlParameter("?max_id",null));
            cmd.Parameters.Add(new MySqlParameter("?currentrec",null));    

            //соеденяемся с БД-приемником
            MySqlConnection rem_conn = GetConnection(false);
            MySqlCommand cmd_ = new MySqlCommand();
            cmd_.Connection = rem_conn;  
           
           
            //добавляем параметры для запроса к TMP
           
        cmd_.Parameters.Add(new MySqlParameter("?Mobitel_ID", null));
        ...
 
            conn.Open();
            rem_conn.Open();


            //опеределяем кол-во записей, которые надо скопировать
            object o = cmd.ExecuteScalar();
            uint numrec = uint.Parse(o.ToString());
           
            uint numpacks = numrec / 10000 + 1;
           
            cmd.CommandText = comand;
            //определяем DataGps_ID с которого начинаем копирование
           
            Console.WriteLine();
            int count = 0;
            Console.WriteLine("Начало копирования {0}", DateTime.Now);
            Console.WriteLine("копированиe...");

            cmd_.CommandText = "LOCK TABLES datagps_1 WRITE;";
            cmd_.ExecuteNonQuery();  

            cmd_.CommandText = "INSERT INTO datagps_1(...)" +
                               "VALUES(?Mobitel_ID...)";
            MySqlDataReader reader;

            for (uint i = 0; i < numpacks; i++)
            {
                cmd.Parameters["?currentrec"].Value = i * 10000 + 1;
                cmd.Prepare();
                reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        cmd_.Parameters["?Mobitel_ID"].Value = reader["Mobitel_ID"];
            ...
                        count += cmd_.ExecuteNonQuery();
                    }
                 reader.Close();  
                 Console.Clear();
                 Console.WriteLine("{0} пакетов скопировано", i);  
            }

}

ВОПРОС: Как сделать чтобы вместо отдельных INSERTов формировались INSERTы в форме, содержащей множество записей

типа отак INSERT INTO TABLE <tabl>(<fields>) VALUES
(<val_list1>),... ,(val_list_n);
Если можно пример, или ссылочку если это где-то такое уже есть. Заранее спасибо.

[color=red]Для оформления кода используй теги. Модератор. [/color]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог