Мне нужно открыть свободные таблицы foxpro в vb.net, используя соединение oledb.
Но ... Мне нужно только получить имена столбцов. Мне не нужно ничего «выбирать».
Я пытаюсь динамически просматривать все наши бесплатные таблицы и настроить список каждого столбца из каждого файла и связать его с другой свободной таблицей, которая содержит описание каждого столбца.
У меня есть рабочая модель, но она требует, чтобы я ...
SELECT TOP 1 FROM "File" ORDER BY 1
Но для самой большой таблицы требуется только две минуты, чтобы прочитать первую запись, и есть более 250 таблиц. В целом, это занимает от 15 до 20 минут.
Или есть другой способ получить только первую запись таблицы, не используя 'ORDER BY'?
Вот что у меня есть. «Файл» передается как параметр.
Он будет содержать информацию типа "C: \ data \ table1.dbf"
Dim filePath As String
filePath = IO.Path.GetDirectoryName(file)
myOledbConnection = New OleDbConnection("Provider=VFPOLEDB.1;Data Source=" & filePath & ";Collating Sequence=MACHINE")
myOledbCommand = New OleDbCommand
myOledbDataAdapter = New OleDbDataAdapter
Dim fields, from, order As String
fields = "select top 1 *"
from = " from " & file
order = " order by 1"
myOledbCommand.CommandText = fields & from & order
myOledbCommand.Connection = myOledbConnection
myOledbDataAdapter.SelectCommand = myOledbCommand
myOledbDataAdapter.Fill(dt)
Затем я беру таблицу данных (dt) и перебираю, чтобы получить информацию о столбце.
Мне бы хотелось, чтобы это было так же быстро, как в Visual Studio, когда я создаю набор данных и загружаю все таблицы из каталога с помощью мастера. Он может очень быстро найти всю информацию столбца, не считывая данные из таблицы.
Дайте мне знать, если вам нужна дополнительная информация.
Спасибо.