Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите как работать под .net с большими размерами dbf / 6 сообщений из 6, страница 1 из 1
17.05.2010, 12:54
    #36631857
sergiu.c
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как работать под .net с большими размерами dbf
Есть следующий код который работает с малыми обьемами dbf (импортирует из dbf в mysql )
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
 private void Connection()
        {
            server = "localhost";
            database = "dbf";
            uid = "root";
            password = "88888";
            string connectionString;
            connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
            mysql_connection = new MySqlConnection(connectionString);

            OleDbConnection DBFconn = new OleDbConnection(@"Provider=VFPOLEDB.1;data source=C:\\sisarm.dbf;");
           
            DataSet DBFds = new DataSet();
            DataSet MySQLds = new DataSet();

            DBFconn.Open();

           OleDbDataAdapter dbfAd = new OleDbDataAdapter("SELECT * FROM sisarm", DBFconn);
             dbfAd.Fill(DBFds, "sisarm");
           label1.Text = DBFds.Tables[ 0 ].Rows.Count.ToString();

            mysql_connection.Open();
            MySqlDataAdapter mysqlAd = new MySqlDataAdapter("SELECT * FROM sisarm",mysql_connection);
            mysqlAd.Fill(MySQLds, "sisarm");

            foreach (DataRow row in DBFds.Tables["sisarm"].Rows)
            {

                MySQLds.Tables[ 0 ].NewRow();

              MySQLds.Tables[ 0 ].Rows.Add(row.ItemArray);

            }

            MySqlCommandBuilder cmd = new MySqlCommandBuilder(mysqlAd);
            mysqlAd.Update(MySQLds, "sisarm");
            label2.Text += "<br />MySql myTables: " + MySQLds.Tables[ 0 ].Rows.Count.ToString() + " records found <hr />";

        
        }
проблема в том что при загрузке из большой бд программка виснет .... и в результате ничего (((
читал где то что dbf можно разбить на несколько частей и потом с ним работать.....
подскажите как можно решить данную проблему
...
Рейтинг: 0 / 0
17.05.2010, 13:18
    #36631922
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как работать под .net с большими размерами dbf
sergiu.cчитал где то что dbf можно разбить на несколько частей и потом с ним работать.....
подскажите как можно решить данную проблемуБейте по recno() в цикле:
Код: plaintext
OleDbDataAdapter dbfAd = new OleDbDataAdapter("SELECT * FROM sisarm where between(recno(),1000,2000)", DBFconn);
Это, конечно, если дбфку никто не меняет во время заливки. И замените звездочку на явный список полей.
...
Рейтинг: 0 / 0
17.05.2010, 13:23
    #36631935
sergiu.c
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как работать под .net с большими размерами dbf
ок попробую спс
...
Рейтинг: 0 / 0
17.05.2010, 13:32
    #36631973
sergiu.c
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как работать под .net с большими размерами dbf
результат есть )))) правда почему то показывает 1001 при испольщование
Код: plaintext
1.
OleDbDataAdapter dbfAd = new OleDbDataAdapter("SELECT * FROM S_NAM_PR where between(recno(),1000,2000)", DBFconn);
поищу про recno и буду дальше усовершенствовать .Но результат все равно есть чем закончится все это напишу :)
...
Рейтинг: 0 / 0
17.05.2010, 14:12
    #36632115
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как работать под .net с большими размерами dbf
sergiu.cрезультат есть )))) правда почему то показывает 1001 при испольщование [src]... between(recno(),1000,2000) ...
А сколько должно быть если не 1001?
...
Рейтинг: 0 / 0
17.05.2010, 16:49
    #36632539
sergiu.c
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как работать под .net с большими размерами dbf
разобрался все правильно так и должно быть 1001
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите как работать под .net с большими размерами dbf / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]