Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: добавление записей в SQL-таблицу через АДО Добавлено: 06.06.06 10:12  

Автор вопроса:  Jarilo | Web-сайт: jarilo.ru | ICQ: 174331844  
салют всем!
почему-то не работает добавление записей.
подключаюсь к серверу, могу прочитать с него данные, но при использовании метода ADD объекта RecordSet мне выдается сообщение:
"текущий рекордсет не поддерживает обновление. это может быть ограничением провайдера или выбранного типа блокировки".
причем, через Access, например, я могу добавлять, редактировать и удалять данные без проблем.

Public pCon As ADODB.Connection
Public pRS As ADODB.Recordset
...
pCon.ConnectionString = "Driver={SQL Server};Server=ADMSRV3"
...
pRS.Open "SELECT * FROM budget.dbo.LocalMission", pCon

Заранее спасибо!

Ответить

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

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



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


 Профиль | | #1 Добавлено: 06.06.06 11:12
1. Ты используешь ODBC-драйвер.
2. Ты не указываешь тип открываемого рекордсета.

Ответить

Номер ответа: 2
Автор ответа:
 Jarilo



ICQ: 174331844  

Вопросов: 1
Ответов: 5
 Web-сайт: jarilo.ru
 Профиль | | #2
Добавлено: 06.06.06 11:54
спасибо за подсказку. заработало, вроде :)

Ответить

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



ICQ: 174331844  

Вопросов: 1
Ответов: 5
 Web-сайт: jarilo.ru
 Профиль | | #3
Добавлено: 06.06.06 12:09
нет, не заработало. :(
ругаться перестало, но записи не добавляет :(
в примерах и библиотеке кодов я что-то не нашел ничего похожего...

Ответить

Номер ответа: 4
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 06.06.06 13:44
ковыряй ConnectionString, у тебя она далеко не полная, там ещё кача параметров должно быть...

Ответить

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



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


 Профиль | | #5 Добавлено: 06.06.06 14:08
Приведённая Connection string, что называется, "необходимо и достаточно".


А как, собственно, автор добавляет записи?

Ответить

Номер ответа: 6
Автор ответа:
 Jarilo



ICQ: 174331844  

Вопросов: 1
Ответов: 5
 Web-сайт: jarilo.ru
 Профиль | | #6
Добавлено: 06.06.06 14:22
например, вот так:

    pRS.AddNew
    pRS.Fields("FIO";).Value = "Петров П.П."
    pRS.Update

Ответить

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



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


 Профиль | | #7 Добавлено: 06.06.06 14:46
Provider=sqloledb; написал?
Рекордсет открыл с каким опциями?

Ответить

Номер ответа: 8
Автор ответа:
 Jarilo



ICQ: 174331844  

Вопросов: 1
Ответов: 5
 Web-сайт: jarilo.ru
 Профиль | | #8
Добавлено: 06.06.06 15:36
попробовал написать провайдера. говорит, не может найти такого.
рекордсет открываю с опциями adOpenForwardOnly, adLockBatchOptimistic

Ответить

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



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


 Профиль | | #9 Добавлено: 06.06.06 17:47
Ну и чего мы хотим, с batch optimistic?
Методы update и update batch находятся рядом.

А отсутствие провайдера говорит о том, что MDAC обновить давно пора.

Ответить

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #10 Добавлено: 06.06.06 19:02
ну и чтобы уже окончательно дотянуть до Флудера Дня, как называет меня один из форумчанинов, воть:


Автор: Carl Prothman, Microsoft Corp.
Добавлено: 26.02.2001 « предыдущая следующая » все материалы
Данный материал содержит примеры создания строк ADO connection для различных типов часто используемых Баз Данных, например: ODBC DSN, ODBC DSN-Less, OLE DB Provider, MS Remote, Oracle, Excel, FoxPro и т.д.

ODBC DSN Connections

DSN

oConn.Open ";DSN=AdvWorks;" & _
                   "Uid=Admin;" & _
                   "Pwd=; File DSN

oConn.Open "FILEDSN=\somepath\mydb.dsn;" & _
                   "Uid=Admin;" & _
                   "Pwd=;"

Подробнее см.: About ODBC data sources и How to Use File DSNs and DSN-less Connections

  ODBC DSN-Less Connections

Драйвер ODBC для Access

Стандартная политика безопасности:

oConn.Open ";Driver={Microsoft Access Driver (*.mdb)};" & _
                   ";Dbq=\somepath\mydb.mdb;" & _
                   "Uid=Admin;" & _
                   "Pwd=;"

Если используется Workgroup (System database):

oConn.Open ";Driver={Microsoft Access Driver (*.mdb)};" & _
                   ";Dbq=\somepath\mydb.mdb;" & _
                   "SystemDB=\somepath\mydb.mdw;", _
                   "admin", ""

Подробнее см.: Microsoft Access Driver Programming Considerations

  Драйвер ODBC для dBASE

oConn.Open ";Driver={Microsoft dBASE Driver (*.dbf)};" & _
                  ";DriverID=277;" & _
                  ";Dbq=\somepath;"

Примечание: Задайте имя файла в запросе SQL. Например:
         oRs.Open "Select * From user.dbf", oConn, , ,adCmdText

Примечание: MDAC 2.1 (и далее) требует Borland Database Engine (BDE) для обновления DBF-файлов dBase. (Q238431).

Подробнее см.: dBASE Driver Programming Considerations

  

Драйвер ODBC для Excel

oConn.Open ";Driver={Microsoft Excel Driver (*.xls)};" & _
                   ";DriverId=790;" & _
                   ";Dbq=\somepath\mySpreadsheet.xls;" & _
                   ";DefaultDir=\somepath;"

Подробнее см.: Microsoft Excel Driver Programming Considerations

  Драйвер ODBC для Oracle

Для текущего ODBC-драйвера Microsoft для Oracle:

oConn.Open ";Driver={Microsoft ODBC for Oracle};" & _
                   "Server=OracleServer.world;" & _
                   "Uid=demo;" & _
                   "Pwd=demo;"

Для старого ODBC-драйвера Microsoft для Oracle:

oConn.Open ";Driver={Microsoft Драйвер ODBC для Oracle};" & _
                   "ConnectString=OracleServer.world;" & _
                   "Uid=demo;" & _
                   "Pwd=demo;"

Подробнее см.: Connection String Format and Attributes

  Драйвер ODBC для Paradox

oConn.Open ";Driver={Microsoft Paradox Driver (*.db)};" & _
                   ";DriverID=538;" & _
                   "Fil=Paradox 5.X;" & _
                   ";DefaultDir=c:\dbpath\;" & _
                   ";Dbq=c:\dbpath\;" & _
                   "CollatingSequence=ASCII;"

Примечание: MDAC 2.1 (и далее) требует Borland Database Engine (BDE) для обновления fDBF-файлов Paradox ISAM. (Q230126).

Подробнее см.: Paradox Driver Programming Considerations

  Драйвер ODBC для SQL Server

Стандартная политика безопасности:

oConn.Open ";Driver={SQL Server};" & _
                   "Server=carl2;" & _
                   ";Database=pubs;" & _
                   "Uid=sa;" & _
                   "Pwd=;"

Trusted Connection:

oConn.Open ";Driver={SQL Server};" & _
                   "Server=carl2;" & _
                   ";Database=pubs;" & _
                   "Uid=;" & _
                   "Pwd=;"

Примечание: используйте пустой UID и PWD

С запросом имени пользователя и пароля

oConn.Properties("Prompt";) = adPromptAlways
oConn.Open ";Driver={SQL Server};" & _
                   "Server=carl2;" & _
                   ";DataBase=pubs;"
      

Подробнее см.: SQLDriverConnect (ODBC)

  Драйвер ODBC для Sybase

Использование ODBC-драйвера Sybase System 11:

oConn.Open ";Driver={SYBASE SYSTEM 11};" & _
                   "Srvr=myServerName;" & _
                   "Uid=myUsername;" & _
                   "Pwd=myPassword;"

Использование ODBC-драйвера Intersolv 3.10 Sybase:

oConn.Open ";Driver={INTERSOLV 3.10 32-BIT Sybase};" & _
                   "Srvr=myServerName;" & _
                   "Uid=myUsername;" & _
                   "Pwd=myPassword;"

Подробнее см.: Sybase System 10 ODBC Driver Reference Guide

  Драйвер ODBC для Sybase SQL Anywhere

oConn.Open "ODBC; Driver=Sybase SQL Anywhere 5.0;" & _
                   ";DefaultDir=c:\dbpath\;" & _
                   ";Dbf=c:\sqlany50\mydb.db;" & _
                   "Uid=dbagroup;" & _
                   "Pwd=;"
                   ";Dsn="""";"

Примечание: Необходимо включение тега DSN с нулевой строкой, иначе возникает ошибка 7778.

Подробнее см.: Sybase SQL Anywhere User Guide

  Драйвер ODBC для текста

oConn.Open ";Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
                   ";Dbq=\somepath\;" & _
                   "Extensions=asc,csv,tab,txt;" & _
                   "Persist Security Info=False"

Примечание: Задайте имя файла запросе SQL. Например:

oRs.Open "Select * From customer.csv", _
               oConn, adOpenStatic, adLockReadOnly, adCmdText


Подробнее см.: Text File Driver Programming Considerations

  Драйвер ODBC для Visual FoxPro

Используя database container:

oConn.Open ";Driver={Microsoft Visual FoxPro Driver};" & _
                   "SourceType=DBC;" & _
                   "SourceDB=\somepath\mySourceDb.dbc;" & _
                   "Exclusive=No;"

Без database container (Free Table Directory):

oConn.Open ";Driver={Microsoft Visual FoxPro Driver};" & _
                   "SourceType=DBF;" & _
                   "SourceDB=\somepath\mySourceDbFolder;" & _
                   "Exclusive=No;"
  

Подробнее см.: Visual FoxPro ODBC Driver and Q165492

  OLE DB Data Link Connections Data Link File (UDL)

Для абсолютного пути:

oConn.Open "File Name=\somepath\pubs.udl;"

Для относительного пути:

oConn.Open "File Name=pubs.udl;"
   

Подробнее см.: HOWTO: Use Data Link Files with ADO

Примечание: Windows 2000 больше не поддерживает меню "New | Microsoft Data Link". Поэтому для того, чтобы создать Data Link File, создайте текстовый файл, затем измените его расширение на ".udl". Затем дважды щелкните по файлу и установите свойства Data Link.

  OLE DB Provider Connections OLE DB Provider for Active Directory Service

oConn.Open "Provider=ADSDSOObject;" & _
                   "User Id=admin;" & _
                   "Password=;"
      

Подробнее см.: Microsoft OLE DB Provider for Microsoft Active Directory Service

 OLE DB Provider for DB2

oConn.Open = "Provider=DB2OLEDB;" &
                     "Network Transport Library=TCPIP;" &
                     "Network Address=MyServer;" & _
                     "Package Collection=MyPackage;" &
                     "Host CCSID=1142"
                     "Initial Catalog=MyDB;" &
                     "User ID=MyUsername;" & _
                     "Password=MyPassword;"

Подробнее см.: INF: Configuring Data Sources for the Microsoft OLE DB Provider for DB2

 OLE DB Provider for Index Server

oConn.Open "Provider=msidxs;" & _
                   ";Data source=MyCatalog;"
    

Подробнее см.: Microsoft OLE DB Provider for Microsoft Indexing Service

 OLE DB Provider for Internet Publishing

oConn.Open "Provider=MSDAIPP.DSO;" & _
            ";Data Source=http://mywebsite/mydir;" & _
            "User Id=administrator;" & _
            "Password=mypassword;"
   

Подробнее см.: Microsoft OLE DB Provider for Internet Publishing

 OLE DB Provider for Microsoft Jet

For standard security:

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                   ";Data Source=\somepath\mydb.mdb;" & _
                   "User Id=admin;" & _
                   "Password=;"

If you are using a workgroup (system database):

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                   ";Data Source=\somepath\mydb.mdb;" & _
                   "Jet OLEDB:System Database=system.mdw;", _
                   "admin", ""

Note, remember to convert both the MDB and the MDW to the 4.0 database format when using the 4.0 OLE DB Provider.

If your MDB has a database password:

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                   ";Data Source=\somepath\mydb.mdb;" & _
                   "Jet OLEDB:Database Password=MyDbPassword;", _
                   "admin", ""

Подробнее см.: OLE DB Provider for Microsoft Jet and Q191754

  

Примечание: You can also open an Excel spreadsheet using the "OLE DB Provider for Microsoft Jet"

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                   ";Data Source=\somepath\expenses.xls;" & _
                   "Extended Properties=""Excel 8.0;HDR=Yes;"";"

Where "HDR=Yes" means that there is a header row in the cell range
(or named range), so the provider will not include the first row of the
selection into the recordset. If "HDR=No", then the provider will include
the first row of the cell range (or named ranged) into the recordset.

 OLE DB Provider for ODBC Databases

For Access (Jet):

oConn.Open "Provider=MSDASQL;" & _
                   ";Driver={Microsoft Access Driver (*.mdb)};" & _
                   ";Dbq=\somepath\mydb.mdb;" & _
                   "Uid=Admin;" & _
                   "Pwd=;"

For SQL Server:

oConn.Open "Provider=MSDASQL;" & _
                   ";Driver={SQL Server};" & _
                   "Server=carl2;" & _
                   ";Database=pubs;" & _
                   "Uid=sa;" & _
                   "Pwd=;"

Подробнее см.: Microsoft OLE DB Provider for ODBC

 OLE DB Provider for Oracle (from Microsoft)

oConn.Open "Provider=msdaora;" & _
                   ";Data Source=OracleServer.world;" & _
                   "User Id=carl;" & _
                   "Password=;"

Подробнее см.: Microsoft OLE DB Provider for Oracle

 OLE DB Provider for Oracle (from Oracle)

For Standard Security:

oConn.Open "Provider=OraOLEDB.Oracle;" & _
                   ";Data Source=MyOracleDB;" & _
                   "User Id=carl;" & _
                   "Password=;"

For a Trusted Connection:

oConn.Open "Provider=OraOLEDB.Oracle;" & _
                   ";Data Source=MyOracleDB;" & _
                   "User Id=/;" & _
                   "Password=;"
' Or

oConn.Open "Provider=OraOLEDB.Oracle;" & _
                   ";Data Source=MyOracleDB;" & _
                   "OSAuthent=1;"
   

Примечание: ";Data Source=" must be set to the appropriate Net8 name which is known to the naming method in use. For example, for Local Naming, it is the alias in the tnsnames.ora file; for Oracle Names, it is the Net8 Service Name.

Подробнее см.: Connecting to an Oracle Database
(Note, if you get a Logon dialog, then click Cancel, then perform a one-time free signup with Oracle's TechNet system)

  OLE DB Provider for SQL Server

For Standard Security:

oConn.Open "Provider=sqloledb;" & _
                   ";Data Source=carl2;" & _
                   "Initial Catalog=pubs;" & _
                   "User Id=sa;" & _
                   "Password=;"

For a Trusted Connection:

oConn.Open "Provider=sqloledb;" & _
                   ";Data Source=carl2;" & _
                   "Initial Catalog=pubs;" & _
                   "Trusted_Connection=yes;"

To connect to a "Named Instance" (SQL Server 2000)

oConn.Open "Provider=sqloledb;" & _
                   ";Data Source=carl2\Inst2;" & _
                   "Initial Catalog=pubs;" & _
                   "User Id=sa;" & _
                   "Password=;"

To Prompt user for username and password:

oConn.Provider = "sqloledb"
oConn.Properties("Prompt";) = adPromptAlways
oConn.Open ";Data Source=carl2;" & _
                   "Initial Catalog=pubs;"

To connect via an IP address

oConn.Open "Provider=sqloledb;" & _
                   ";Data Source=xxx.xxx.xxx.xxx,1433;" & _
                   "Network Library=DBMSSOCN;" & _
                   "Initial Catalog=pubs;" & _
                   "User ID=sa;" & _
                   "Password=;"

Примечание:
"Network Library=DBMSSOCN" tells OLE DB to use TCP/IP rather than Named Pipes (Q238949).
And 1433 is the default port number for SQL Server

Подробнее см.: Connecting to a SQL Server Data Source

  Remote OLE DB Provider Connections

The following connections strings use Microsoft's remote provider (MS Remote). The MS Remote provider tells ADO to communicate with the remote server (via the RDS DataFactory) and to use the remote provider that is installed on the remote server.
     MS Remote - Access (Jet)

If you want to use an ODBC DSN on the remote machine:

oConn.Open "Provider=MS Remote;" & _
                   "Remote Server=http://carl2;" & _
                   "Remote Provider=MSDASQL;" & _
                   ";DSN=AdvWorks;" & _
                   "Uid=admin;" & _
                   "Pwd=;"

If you want to use an OLE DB Provider on the remote machine:

oConn.Open "Provider=MS Remote;" & _
                   "Remote Server=http://carl2;" & _
                   "Remote Provider=Microsoft.Jet.OLEDB.4.0;" & _
                   ";Data Source=\somepath\mydb.mdb;", _
                   "admin", ""

If you want to use an OLE DB Provider on the remote machine with a RDS DataFactory Handler:

oConn.Open "Provider=MS Remote;" & _
                   "Remote Server=http://carl2;" & _
                   "Handler=MSDFMAP.Handler;" & _
                   ";Data Source=MyAdvworksConn;"

The corresponding entry in the \winnt\Msdfmap.ini file would be:

[connect MyAdvworksConn]
Access = ReadWrite
Connect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                ";Data Source=mydb.mdb;" & _
                "User Id=admin;" & _
                "Password=;"
   MS Remote - SQL Server

If you want to use an ODBC DSN on the remote machine:

oConn.Open "Provider=MS Remote;" & _
                   "Remote Server=http://carl2;" & _
                   "Remote Provider=MSDASQL;" & _
                   "Network Library=DBMSSOCN;" & _
                   ";DSN=Pubs;" & _
                   "Uid=sa;" & _
                   "Pwd=;"

If you want to use an OLE DB Provider on the remote machine:

oConn.Open "Provider=MS Remote;" & _
                   "Remote Server=http://carl2;" & _
                   "Remote Provider=SQLOLEDB;" & _
                   "Network Library=DBMSSOCN;" & _
                   ";Data Source=carl2;" & _
                   "Initial Catalog=pubs;" & _
                   "User ID=sa;" & _
                   "Password=;"

If you want to use an OLE DB Provider on the remote machine with a RDS DataFactory Handler:

oConn.Open "Provider=MS Remote;" & _
                   "Remote Server=http://carl2;" & _
                   "Handler=MSDFMAP.Handler;" & _
                   ";Data Source=MyPubsConn;"

The corresponding entry in the \winnt\Msdfmap.ini file would be:

[connect MyPubsConn]
Access = ReadWrite
Connect = "Provider=SQLOLEDB;" & _
                "Network Library=DBMSSOCN;" & _
                ";Data Source=carl2;" & _
                "Initial Catalog=pubs;" & _
                "User ID=sa;" & _
                "Password=;"

Примечание: "Network Library=DBMSSOCN" tells OLE DB to use TCP/IP rather than Named Pipes (Q238949).
   

Подробнее см.: Microsoft OLE DB Remoting Provider


:)

Ответить

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



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


 Профиль | | #11 Добавлено: 07.06.06 06:25
Жестокий и бессмысленный пост.
Мало того, что не имеющий отношения к вопросу, так ещё и www.connectionstrings.com есть, вообще-то.

Ответить

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



ICQ: 174331844  

Вопросов: 1
Ответов: 5
 Web-сайт: jarilo.ru
 Профиль | | #12
Добавлено: 07.06.06 11:32
да уж. :)
всем спасибо! все заработало!

Ответить

Страница: 1 |

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



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