Страница: 1 |
|
Вопрос: VB и Insert (SQL Server 2000)
|
Добавлено: 18.12.07 16:45
|
|
Автор вопроса: Polaris | ICQ: 300572769
|
Доброго времени суток!Погмогите пожалуйства Уважаемые форумчане. Сам я не местный :))
в смысле это мой первый опыт написания программ и VB в том числе.
у меня такая проблема
в настоящий момент занимаюсь разработкой программы, которая будет работать с базой на SQL Server 2000.
есть база, логин пароль на SQL Server заведен, и через Query Analyzer командами SQL я записи в таблицу добавляю.
Средствами программы не получается. Делаю через Connection и Recordset. пытаюсь вставить через Execute и SQL команду
ЧТо я упустил?
P.s. в качестве средства разработки Microsoft Visual Studio 6.0
---------------------------------------------------
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sqlOb As SQLDMO.SQLServer 'базы
Dim obj1 As Object ' ' базы
Private Sub Form_Load()
' загрузка формы. подтягивает базы c сервера srvbase
'Set sqlOb = New SQLDMO.SQLServer
'sqlOb.Connect "srvbase", "pol", "pol"
'Set obj1 = sqlOb.Databases
'For Each dbs In obj1
'Combo1.AddItem dbs.Name
'Combo1.Text = dbs.Name
'Next dbs
'Combo1_Click
End Sub
Public Function ADODB_ConnectedSQL() As Boolean
' Устанавливаем соединение с SQL сервером
On Error GoTo err_not_connection
Set cn = New ADODB.Connection
cn.Provider = "SQLOLEDB"
' все кнопки
'cn.ConnectionString = "Data Source=" & Text1.Text & "; Initial Catalog=" & Trim(Combo1.Text) & ";Persist Security Info =True;User ID=" & Text3.Text & ";Password=" & Text4.Text & " "
' не все кнопки
cn.ConnectionString = "Data Source= srvbase; Initial Catalog=base1; Persist Security Info =True; User ID=" & Text3.Text & "; Password=" & Text4.Text & " "
cn.Open ConnectString
ADODB_ConnectedSQL = True
Exit Function
err_not_connection:
ADODB_ConnectedSQL = False
MsgBox "не удалось подключиться к SQL серверу"
Set cn = Nothing
End Function
Private Sub Command1_Click()
If ADODB_ConnectedSQL() Then
FormMain.Show
Else
FormConn.Hide
End If
FormConn.Hide
End Sub
Private Sub Command2_Click()
Me.Hide
Unload Me
End Sub
Ответить
|
Номер ответа: 1 Автор ответа: Polaris
ICQ: 300572769
Вопросов: 1 Ответов: 4
|
Профиль | | #1
|
Добавлено: 18.12.07 17:10
|
упс... не с той формы )
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 = 3
Trusted_Connection = True
State = adStateExecuting
cn.ConnectionString = "Provider = SQLOLEDB; Data Source = srvbase; Database = base1; Persist Security Info =True; User ID = pol; Password = pol"
cn.Open
Set rs.ActiveConnection = cn
On Error GoTo err_form_vvod
rs.CursorType = adOpenDynamic ' курсор
rs.Source = ("USE Base1 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())"
Set rs = Nothing ' освобождаем
Set cn = Nothing ' освобождаем
rs.Close 'закрываем
cn.Close ' закрываем
err_form_vvod: MsgBox "Ошибка"
End Sub
Private Sub Command2_Click()
FormVvod.Hide
Unload Me
FormMain.Show
End Sub
Ответить
|
Номер ответа: 2 Автор ответа: ZoomerSD
ICQ: 148640473
Вопросов: 135 Ответов: 270
|
Профиль | | #2
|
Добавлено: 19.12.07 02:25
|
Делай проще
cn.Execute "INSERT...."
а рекордсет он сипользуется для вывода запроса SELECT
и ИМХО открывать его проще через
rs.open " SELECT * FROM [Table]",cn
затем
rs.Close 'закрываем
cn.Close ' закрываем
надо делать перед
Set rs = Nothing ' освобождаем
Set cn = Nothing ' освобождаем
Ответить
|
Номер ответа: 6 Автор ответа: ZoomerSD
ICQ: 148640473
Вопросов: 135 Ответов: 270
|
Профиль | | #6
|
Добавлено: 19.12.07 17:04
|
странно. какой SQL запрос ты используеш?
если "USE Base1 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())"
то попробуй убрать строку USE Base1 . я если честно вообще неприпоминаю такого в синтаксисе SQL
Ответить
|
Страница: 1 |
Поиск по форуму