Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Опять DBF Добавлено: 19.07.05 14:14  

Автор вопроса:  Денис | ICQ: 109593029 
Может я повторясь, но кто-нибудь подскажет как соединистья с файлов dbf, и как с ним работать (запросами или перебором записей).

Если точнее выразится мне надо программно импортировать таблицу из dbf на SQL сервер. Как мне это лучше сделать?

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 Hunter2003



ICQ: 287314254 

Вопросов: 14
Ответов: 72
 Профиль | | #1 Добавлено: 19.07.05 15:06
Если dbf формата foxpro 2 - 2.6, то через обычный data. Если dbf формата Visual FoxPro, то только через ODBC драйвер. А как конвертировать таблицы? Так это элементарно - читаешь строку из одной и пишешь в другую....

Ответить

Номер ответа: 2
Автор ответа:
 Денис



ICQ: 109593029 

Вопросов: 15
Ответов: 32
 Профиль | | #2 Добавлено: 19.07.05 15:17
Можно по подробнее про "обычный data"?

Ответить

Номер ответа: 3
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #3 Добавлено: 19.07.05 15:23
Через обычный ADO.
Так же, как к любой другой базе.
http://www.connectionstrings.com/

Ответить

Номер ответа: 4
Автор ответа:
 Денис



ICQ: 109593029 

Вопросов: 15
Ответов: 32
 Профиль | | #4 Добавлено: 19.07.05 15:52
Че за ерунда? сторока соединения:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<Path>;Extended Properties=dBASE IV;User ID=Admin;Password=;

<Path> реальный, а выдает ошибку:

"Строка <Path> задает ошибочный путь"

Ответить

Номер ответа: 5
Автор ответа:
 Денис



ICQ: 109593029 

Вопросов: 15
Ответов: 32
 Профиль | | #5 Добавлено: 19.07.05 16:10
Может надо подключить какие-нибудь библиотеки?
У меня VB.NET стандарт. 2003.

Ответить

Номер ответа: 6
Автор ответа:
 Денис



ICQ: 109593029 

Вопросов: 15
Ответов: 32
 Профиль | | #6 Добавлено: 19.07.05 16:50
Error: "Невозможно найти устанавливаемый ISAM"

Что такое ISAM?

Ответить

Номер ответа: 7
Автор ответа:
 MixeR



Вопросов: 12
Ответов: 25
 Профиль | | #7 Добавлено: 19.07.05 17:50
Тут нужен драйвер ODBC
Качаешь (с микрософта если нет), add reference microsoft.data.odbc.dll

Далее Imports Microsoft.Data.Odbc
и вперёд. Как правильно подлючится через ODBC прочитаешь тут
http://www.carlprothman.net/Default.aspx?tabid=86#ODBCManagedProvider

а дальше можешь считывать значения. формировать новый sql запрос insert into ***, и MSSQl.

Ответить

Номер ответа: 8
Автор ответа:
 Денис



ICQ: 109593029 

Вопросов: 15
Ответов: 32
 Профиль | | #8 Добавлено: 20.07.05 11:06
Спасибо MixeR! все получилось все нормально.

Есть еще маленький вопросик.

Необходимо ту таблицу, к которой подключисля, загнать в MSSQL, понятно что запросами Insert, вопрос в том, что таблицу с такими полями надо создать на "сервере". В таблице более 30 полей, как сделать лучше, чтобы не перечислять все поля при создании таблицы на SQL сервере? Может быть есть вожможность использовать для этой цели DataTable?

Ответить

Номер ответа: 9
Автор ответа:
 Денис



ICQ: 109593029 

Вопросов: 15
Ответов: 32
 Профиль | | #9 Добавлено: 21.07.05 08:46
Привет всем! Кто-нибудь работал с SQL скриптами?
Как их можно использовать для создания таблиц?
И как программно их создавать?

Ответить

Номер ответа: 10
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #10 Добавлено: 21.07.05 09:19
SQL - не скрипты...
Справку по CREATE TABLE смотри.

Ответить

Номер ответа: 11
Автор ответа:
 Денис



ICQ: 109593029 

Вопросов: 15
Ответов: 32
 Профиль | | #11 Добавлено: 21.07.05 10:28
Для общего развития.
Зачем нужны файлы *.SQL?
Их генерирует SQL сервер.

Ответить

Номер ответа: 12
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #12 Добавлено: 24.08.05 16:41
В таблице более 30 полей, как сделать лучше, чтобы не перечислять все поля при создании таблицы на SQL сервере?


Dim Rec1 As ADODB.Recordset
Dim fldLoop As ADODB.Field
Dim FieldName()
Dim FieldTyp()
Dim i As Integer
  'здесь коннектишся к dbf.И кидаешь в Rec1.
   i = 1
   ReDim Preserve FieldName(Rec1.Fields.Count)
   ReDim Preserve FieldTyp(Rec1.Fields.Count)
   
   For Each fldLoop In Rec1.Fields
     FieldName(i) = fldLoop.Name
     FieldTyp(i) = FieldType(fldLoop.Type)
     i = i + 1
   Next fldLoop

В FieldName(i) - получаешь имена полей,
в FieldTyp(i) - типы.
Потом по циклу строишь запрос на создание таблицы и даже можешь не знать имена полей.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам