|
|
|
Импорт из Excel в бд SQL Server через ado в пустую таблицу
|
|||
|---|---|---|---|
|
#18+
Можно ли это сделать через ADO и проч.? Есть БД на сервере, есть файл xls, из которого в таблицу нужно данные вытянуть . Процедура с использованием ADO переносит данные, если в таблице БД есть хотя бы 1 запись. А вот если таблица пустая- ничего не выходит набор пустой. Пока выход вышел такой Записали данные в файл sql, а затем выполнили запрос к серверу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 12:01 |
|
||
|
Импорт из Excel в бд SQL Server через ado в пустую таблицу
|
|||
|---|---|---|---|
|
#18+
нет ничегь невозможного код покажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 13:48 |
|
||
|
Импорт из Excel в бд SQL Server через ado в пустую таблицу
|
|||
|---|---|---|---|
|
#18+
Данные в бд переносятся, если в таблице есть хотя бы 1 запись Sub Excel_P() Dim Z As String Dim s As Integer Dim a As Integer Dim Q As Integer Dim j As Integer Dim sFile As String Dim Exc As Object Dim db As Connection Dim WithEvents adoRs As Recordset Dim xlWb As Object Dim MOSet(1 To 453) As String Dim MOAddr(1 To 453) As String Dim MOParent(1 To 453) As Integer Dim mookato(1 To 453) As String Set Exc = CreateObject("Excel.Application") If Exc Is Nothing Then Exit Sub Dim rng As Object Exc.WorkBooks.Open(sFile).Activate Set xlWb = Exc.ActiveWorkbook xlWb.Worksheets(1).Activate For s = 1 To 453 MOSet(s) = xlWb.ActiveSheet.Cells(s, 3).Value MOAddr(s) = xlWb.ActiveSheet.Cells(s, 4).Value MOParent(s) = xlWb.ActiveSheet.Cells(s, 5).Value mookato(s) = xlWb.ActiveSheet.Cells(s, 6).Value Next s xlWb.Worksheets(2).Activate Dim MV_Name(1 To 1502) As String Dim MV_OKATO(1 To 1502) As String Dim MV_Parent(1 To 1502) As Long For j = 1 To 1502 MV_Parent(j) = xlWb.ActiveSheet.Cells(j, 3).Value MV_OKATO(j) = xlWb.ActiveSheet.Cells(j, 4).Value MV_Name(j) = xlWb.ActiveSheet.Cells(j, 5).Value Next j xlWb.Close Set db = New Connection db.CursorLocation = adUseClient db.Open "PROVIDER=MSDASQL;dsn=new_pass;uid=;pwd=;" Set adoRs = New Recordset adoRs.Open "Select MO.MO_Name,MO.MO_Parent,MO.mo_Level,MO.MO_ADM_Address,MO.OKATO FROM MO", db, adOpenStatic, adLockOptimistic adoRs.MoveLast 'Exit Sub For a = 1 To 453 adoRs.AddNew adoRs.Fields(0).Value = CStr(MOSet(a)) adoRs.Fields(1).Value = CInt(MOParent(a)) adoRs.Fields(2).Value = 4 adoRs.Fields(3).Value = CStr(MOAddr(a)) adoRs.Fields(4).Value = CStr(mookato(a)) Next a adoRs.MoveLast For Q = 1 To 1502 adoRs.AddNew adoRs.Fields(0).Value = CStr(MV_Name(Q)) Z = MV_Parent(Q) + 42 adoRs.Fields(1).Value = CInt(Z) adoRs.Fields(2).Value = 5 adoRs.Fields(4).Value = CStr(MV_OKATO(Q)) Next Q db.Close Set db = Nothing Set adoRs = Nothing Set Exc = Nothing Set xlWb = Nothing Set rng = Nothing Set db = Nothing Exit Sub MsgBox ("âûïîëíåíî!") End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 14:01 |
|
||
|
Импорт из Excel в бд SQL Server через ado в пустую таблицу
|
|||
|---|---|---|---|
|
#18+
Можно воспользоваться DTS пакетом для експорта импорта данных из sql сервера по коду, можно в цикле ввода данных в массив из экселя сразу вводить данные в рекордсет и не использовать массив на счет рекордсета луше использовать комманнд с sqlс криптом Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 14:16 |
|
||
|
Импорт из Excel в бд SQL Server через ado в пустую таблицу
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. есть еще другая возможность через DE command с параметрами и запросом Insert into MO(MO_Name,MO_Parent,mo_Level,MO_ADM_Address,OKATO) Values (?,?,?,?,?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 14:33 |
|
||
|
Импорт из Excel в бд SQL Server через ado в пустую таблицу
|
|||
|---|---|---|---|
|
#18+
вероятнее всего у тебя не добавляются записи из-за ошибки. ошибка скорее всего возникает из-за того что при пустом рекордсете ты пытаешься сделать MoveLast Вообще непонятно, зачем ты испоьзуешь эту команду. убери ее и проверь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 14:51 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=275&tid=2165645]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 374ms |

| 0 / 0 |
