Мастер импорта данных SQL Server 2008 не распознает целочисленные данные для столбца - PullRequest
0 голосов
/ 03 февраля 2010

У меня есть лист Excel с 10 столбцами с заголовками.Для столбца у меня могут быть данные «FF5» или 620. Имя листа - IODE.

Я пытаюсь импортировать эти данные из мастера импорта данных служб SSIS в базу данных таблицы IODE.

При выборе источника и места назначения в мастере, когда я нажимаю на ПРОСМОТР ДАННЫХ в окне Выбор исходных таблиц и представлений, я вижу столбец с 620 как ноль.После импорта этих данных таблица будет иметь значение NULL вместо 620.

Тип данных для этого столбца в таблице - nvarchar (50), я пробовал много типов данных, таких как varchar (100), text / ..

Принимаются только буквенно-цифровые данные.

Я не написал никакого кода для этого .. Я просто пытаюсь импортировать данные из таблицы Excel в таблицу.

Пожалуйста, помогите мне решить эту проблему

СпасибоРамм

Ответы [ 2 ]

0 голосов
/ 04 февраля 2010

Я попытался прочитать Excel, используя ссылку на библиотеку Excel в VB6.0.

Поскольку мастер импорта служб SSIS обрабатывает NUMERIC как NULL, когда данные экспортируются в таблицу SQL.

Эта процедура очень хорошо работает для вставки данных, а также для других операций с базой данных.

Личный Sub AccessExcelData () При ошибке GoTo errHandler
Dim oXLApp As Excel.Application'Объявление переменной объекта
Dim oXLBook As Excel.Workbook
Dim oXLSheet As Excel.worksheet
Dim strFileName As String
Dim lCount As Long
Dim strSCDName As String
Dim strICDName As String
Dim intSource_Index As Integer
Dim strInput_Port As String
Dim strLabel As String
Dim strSDI_CID As String
Dim intWordBitNO As Integer
Dim strFilter_Type As String
Dim strPgroup_Input As String
Dim strParagraph_Input As String
Dim strSQL As String Dim sConnString As String
Dim cnTest As New ADODB.Connection
Dim rsTempRecordset As New ADODB.Recordset
Dim objDataAccess As New FmmtDataAccess.clsDataAccess
Dim strxmlResult As String
objDataAccess.Intialize ConString

strFileName = App.Path & "\ IODE.xls"

sConnString = "Сервер = uasql \ commonsql; База данных = учетные записи; Драйвер = SQL Server; Trusted_Connection = Да; DSN = uasql \ commonsql"

С помощью cnTest
.ConnectionString = sConnString
.ConnectionTimeout = 4
.CursorLocation = adUseClient
.Open
Конец

'Создание части листа Excel.
Set oXLApp = CreateObject ("Excel.Application")
«Создать новый экземпляр Excel
oXLApp.Visible = False
«Не показывать это пользователю
Set oXLBook = oXLApp.Workbooks.Open (strFileName) 'Открыть существующую книгу
Set oXLSheet = oXLBook.Worksheets (1) 'Работа с первым рабочим листом oXLSheet.Activate

с oXLApp
Для lCount = 2 Для oXLSheet.UsedRange.Rows.Count
strSCDName = .Cells (lCount, 1). Значение
strICDName = .Cells (lCount, 2) .Value
intSource_Index = .Cells (lCount, 3). Значение
strInput_Port = .Cells (lCount, 4). Значение
strLabel = .Cells (lCount, 5). Значение
strSDI_CID = .Cells (lCount, 6). Значение
intWordBitNO = .Cells (lCount, 7). Значение
strFilter_Type = .Cells (lCount, 8). Значение
strPgroup_Input = .Cells (lCount, 9). Значение
strParagraph_Input = .Cells (lCount, 10). Значение

'strSQL = "Вставить в значения XYX () (strSCDName .....) Здесь могут использоваться любые связанные с БД запросы
rsTempRecordset.Open strSQL, cnTest, adOpenForwardOnly, adLockReadOnly Next
Конец
Заключительная часть листа Excel.
oXLApp.Visible = False 'Donot Показать его пользователю
Set oXLSheet = Nothing 'отключить от всех объектов Excel (разрешить пользователю)
oXLBook.Close SaveChanges: = False 'Сохранить (и отключить) рабочую книгу
Установить oXLBook = ничего
oXLApp.Quit 'Закрыть (и отключиться от) Excel
Set oXLApp = Nothing
Выход из SuberrHandler:
MsgBox Err.Description
Screen.MousePointer = vbNormalEnd Sub

С помощью этой процедуры записи Excel можно читать из приложения vb и вставлять в существующую таблицу в базе данных SQL. Спасибо Рамм

0 голосов
/ 03 февраля 2010

Вы имеете в виду, что у вас есть FF5 или 620 в качестве значений для этого столбца, что означает, что у вас есть одно или другое и ничего больше или в этом столбце также есть пустые поля?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...