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ы в форме, содержащей множество записей
типа отак INSERT INTO TABLE <tabl>(<fields>) VALUES
(<val_list1>),... ,(val_list_n);
Если можно пример, или ссылочку если это где-то такое уже есть. Заранее спасибо.
[color=red]Для оформления кода используй теги. Модератор. [/color]