проблема с Insert`ом в базу SQL Server

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Polaris
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 20.12.2007 (Чт) 16:57
Откуда: Krasnodar, Russia

проблема с Insert`ом в базу SQL Server

Сообщение Polaris » 20.12.2007 (Чт) 17:07

Доброго времени суток, Уважаемые форумчане!
помогите пожалуйста новичку... вот уже 4 дня сижу, и никак не могу осилить задачу.

Имеется база на SQL Server2000, в базе таблица.
Зачача.
С экранной формы заполняя поля произвести вставку записи в таблицу.

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Private Sub Command1_Click()


'установка соединения с БД
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Mode = adModeReadWrite
cn.ConnectionTimeout = 0
Trusted_Connection = True
State = adStateExecuting

cn.ConnectionString = "Provider=SQLOLEDB.1;Password=pol;Persist Security Info=True;User ID=pol;Initial Catalog=base1;Data Source=srvbase"

cn.Open cn.ConnectionString, "pol", "pol"
Set rs.ActiveConnection = cn



' On Error GoTo err_form_vvod

rs.CursorType = adOpenDynamic ' курсор


rs.Open "INSERT INTO table1 VALUES (' " & Text1.Text & _
" ',' " & Text2.Text & " ','" & Text3.Text & " ',' " & Text4.Text & _
"','" & Text5.Text & " ',' " & Text6.Text & " ',' " & Text7.Text & _
" ',' " & Text8.Text & " ',' " & Text9.Text & " ',' " & Text10.Text & " ',Getdate())", , adOpenStatic, adLockOptimistic, adCmdText




'rs.Close 'закрываем
'cn.Close ' закрываем


Set rs = Nothing ' освобождаем
Set cn = Nothing ' освобождаем



'err_form_vvod: MsgBox "Ошибка"

End Sub


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

может я что-то упустил из виду? может забыл какой-нибудь компонент
в проект добавить?

Скрипт рабочий 100%, потому как в Query Analyzer всё вставляется
прекрасно.

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 20.12.2007 (Чт) 17:42

MsgBox "Ошибка"
Очень информативно.
Хотя бы так, что - ли: MsgBox Err.Description

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 20.12.2007 (Чт) 17:57

Нельзя делать rs.Open "INSERT INTO, этот запрос не возвращает записей.
rs.Open понимает только select или хранимые процедуры.
Нужно делать cn.Execute "INSERT INTO
Лучший способ понять что-то самому — объяснить это другому.

Polaris
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 20.12.2007 (Чт) 16:57
Откуда: Krasnodar, Russia

Сообщение Polaris » 21.12.2007 (Пт) 8:50

Antonariy писал(а):Нельзя делать rs.Open "INSERT INTO, этот запрос не возвращает записей.
rs.Open понимает только select или хранимые процедуры.
Нужно делать cn.Execute "INSERT INTO


c Execute тоже не работает :cry:

при попытке вставить запись в базу без USE Base1 - дает ошибку invalid object name "Table1"

при наличии в скрипте USE Base1 - ничего не происходит :cry:

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.12.2007 (Пт) 10:08

use - комада Query Analyzer, а не sql.
Попробуй поменять строку соединения на
cn.Open "Driver={SQL Swerver};server=srvbase;database=base1", "pol", "pol"
Лучший способ понять что-то самому — объяснить это другому.

Polaris
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 20.12.2007 (Чт) 16:57
Откуда: Krasnodar, Russia

Сообщение Polaris » 21.12.2007 (Пт) 11:49

cn.Open "Driver={SQL S :D erver};server=srvbase;database=base1", "pol", "pol"

это же одно и тоже

cn.ConnectionString = "Provider=SQLOLEDB.1;Password=pol;Persist Security Info=True;User ID=pol;Initial Catalog=base1;Data Source=srvbase"
:roll:

как мне без USE сделать?

insert into table base1.dbo.table1
invalid object name "base1.dbo.table1"


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 37

    TopList