//FoxCon - соединение с foxpro
//OracleCon - соединение с oracle
//чтение из foxpro
String CommandText = "SELECT * from " + OneFile.Name.Substring(0,OneFile.Name.LastIndexOf("."));
OleDbDataAdapter dadapt = new OleDbDataAdapter(CommandText, FoxCon);
DataSet ds = new DataSet();
dadapt.Fill(ds, "RecFox");
//Запись в oracle
OleDbDataAdapter dadapt_orcl = new OleDbDataAdapter(CommandText, OracleCon);
dadapt_orcl.Update(ds, "RecFox");
FoxCon.Close();
как записать таблицу в БД?
пытался сделать так:
Код:
Из foxpro читает, в оракл не пишет, при том, что exception не выдает.
Можно, конечно, создать в оракле таблицу с нужными столбцами и всё построчно занести, но наверное есть и простой способ...
А ничего, что ты в Оракл фигачишь тот же самый SELECT, что и в FoxPro? Может ему какой-нибудь INSERT подсунуть? Ты же все-таки писать в него хочешь, а не читать...
А как насчёт того, чтобы и соединение с Ораклом закрыть??? OracleCon.Close()
Цитата: 3A3-968M
А как насчёт того, чтобы и соединение с Ораклом закрыть??? OracleCon.Close()
оно закрывается, потом, после добавления всех таблиц...
не в том суть - работало бы и без закрытия, наверное придется делать create table, insert, insert, insert...
А вообще, сначала делаешь выборку, а потом:
Код:
[SIZE=2][COLOR=#0000ff]for[/COLOR][/SIZE][SIZE=2] ([/SIZE][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][SIZE=2] i = 0; i < dsFox.RecFox.Rows.Count; i++)[/SIZE]
[SIZE=2]{[/SIZE]
[SIZE=2][COLOR=#008080]DataRow[/COLOR][/SIZE][SIZE=2] dataRow = dsFox.RecFox.Rows;[/SIZE]
[SIZE=2]dsOra.RecOra.Rows.Add(dataRow);[/SIZE]
[SIZE=2]}[/SIZE]
[SIZE=2]{[/SIZE]
[SIZE=2][COLOR=#008080]DataRow[/COLOR][/SIZE][SIZE=2] dataRow = dsFox.RecFox.Rows;[/SIZE]
[SIZE=2]dsOra.RecOra.Rows.Add(dataRow);[/SIZE]
[SIZE=2]}[/SIZE]
Ну, потом Update, конечно!!:)
Чо-то в этом роде..
Цитата: koltaviy
А зачем CREATE TABLE - из твоего кода, таблица уже существует:)..
А вообще, сначала делаешь выборку, а потом:
Ну, потом Update, конечно!!:)
Чо-то в этом роде..
А вообще, сначала делаешь выборку, а потом:
Код:
[SIZE=2][COLOR=#0000ff]for[/COLOR][/SIZE][SIZE=2] ([/SIZE][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][SIZE=2] i = 0; i < dsFox.RecFox.Rows.Count; i++)[/SIZE]
[SIZE=2]{[/SIZE]
[SIZE=2][COLOR=#008080]DataRow[/COLOR][/SIZE][SIZE=2] dataRow = dsFox.RecFox.Rows;[/SIZE]
[SIZE=2]dsOra.RecOra.Rows.Add(dataRow);[/SIZE]
[SIZE=2]}[/SIZE]
[SIZE=2]{[/SIZE]
[SIZE=2][COLOR=#008080]DataRow[/COLOR][/SIZE][SIZE=2] dataRow = dsFox.RecFox.Rows;[/SIZE]
[SIZE=2]dsOra.RecOra.Rows.Add(dataRow);[/SIZE]
[SIZE=2]}[/SIZE]
Ну, потом Update, конечно!!:)
Чо-то в этом роде..
Таблица существует в foxpro(откуда я её читаю), нужно записать в Oracle - там ее нет.