powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Jet OLEDB структура DBF
5 сообщений из 5, страница 1 из 1
Jet OLEDB структура DBF
    #33467523
Igor Elyas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите плиз как узнать тип поля в ДБФе и его размерность например длину строки.
...
Рейтинг: 0 / 0
Jet OLEDB структура DBF
    #33468732
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если клиент на MS VFP, то очень просто: TYPE(), VARTYPE( ), LEN() etc...

Но у Вас скорее всего другой язык... Укажите его...
...
Рейтинг: 0 / 0
Jet OLEDB структура DBF
    #33470887
Igor Elyas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C#
...
Рейтинг: 0 / 0
Jet OLEDB структура DBF
    #33471124
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, вот стандартный пример использования OLE DB Provider (C#)
Тип данных читается в этом месте: dc.DataType (пример для ACCESS, но думаю, что Вы поймете направление в котором Вам надо "копать" дальше):
Код: 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.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
// OleDbSample.cs
using System;
using System.Data;
using System.Data.OleDb;
using System.Xml.Serialization;

public class MainClass {
    public static void Main ()
    {
            // Set Access connection and select strings.
            // The path to BugTypes.MDB must be changed if you build 
            // the sample from the command line:
#if USINGPROJECTSYSTEM
            string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\\..\\BugTypes.MDB";
#else
            string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BugTypes.MDB";
#endif
            string strAccessSelect = "SELECT * FROM Categories";
 
            // Create the dataset and add the Categories table to it:
            DataSet myDataSet = new DataSet();
            OleDbConnection myAccessConn = null;
            try
            {
                  myAccessConn = new OleDbConnection(strAccessConn);
            }
            catch(Exception ex)
            {
                  Console.WriteLine("Error: Failed to create a database connection. \n{0}", ex.Message);
                  return;
            }
 
            try
            {
            
                  OleDbCommand myAccessCommand = new OleDbCommand(strAccessSelect,myAccessConn);
                  OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand);
 
                  myAccessConn.Open();
                  myDataAdapter.Fill(myDataSet,"Categories");
 
            }
            catch (Exception ex)
            {
                  Console.WriteLine("Error: Failed to retrieve the required data from the DataBase.\n{0}", ex.Message);
                  return;
            }
            finally
            {
                  myAccessConn.Close();
            }
 
            // A dataset can contain multiple tables, so let's get them
            // all into an array:
            DataTableCollection dta = myDataSet.Tables;
            foreach (DataTable dt in dta)
            {
            Console.WriteLine("Found data table {0}", dt.TableName);
            }
          
            // The next two lines show two different ways you can get the
            // count of tables in a dataset:
            Console.WriteLine("{0} tables in data set", myDataSet.Tables.Count);
            Console.WriteLine("{0} tables in data set", dta.Count);
            // The next several lines show how to get information on
            // a specific table by name from the dataset:
            Console.WriteLine("{0} rows in Categories table", myDataSet.Tables["Categories"].Rows.Count);
            // The column info is automatically fetched from the database,
            // so we can read it here:
            Console.WriteLine("{0} columns in Categories table", myDataSet.Tables["Categories"].Columns.Count);
            DataColumnCollection drc = myDataSet.Tables["Categories"].Columns;
            int i = 0;
            foreach (DataColumn dc in drc)
            {
                  // Print the column subscript, then the column's name
                  // and its data type:
                  Console.WriteLine("Column name[{0}] is {1}, of type {2}",i++ , dc.ColumnName, dc.DataType);
            }
            DataRowCollection dra = myDataSet.Tables["Categories"].Rows;
            foreach (DataRow dr in dra)
            {
                  // Print the CategoryID as a subscript, then the CategoryName:
                  Console.WriteLine("CategoryName[{0}] is {1}", dr[ 0 ], dr[ 1 ]);
            }
      
   }
...
Рейтинг: 0 / 0
Jet OLEDB структура DBF
    #33483861
Igor Elyas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверно я не совсем четко поставил вопрос. Сорри. С этими праздниками только сейчас вернулся к работе :-) .

Мне необходимо, допустим для ДБФ получить тип поля.
Например VarChar(30) или Numeric(3,4).
Интересуют именно эти свойства размерностей. Можно ли эту инфу вытащить через GetOleDbSchemaTable() метод ?

Необходимо сравнивать структуры метаданных источника и приемника при переливке данных.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Jet OLEDB структура DBF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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