Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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

Ответить

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

Номер ответа: 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 ' освобождаем

Ответить

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



ICQ: 300572769 

Вопросов: 1
Ответов: 4
 Профиль | | #3 Добавлено: 19.12.07 11:03
Не получается через
cn.Execute "Insert ....."
при нажатии кнопки вылетает
 Run Time error 3704
  "Операция не допускается, если объект закрыт"


не пойму в чем дело, я же открывал через
cn.Open

Ответить

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



ICQ: 148640473 

Вопросов: 135
Ответов: 270
 Профиль | | #4 Добавлено: 19.12.07 13:03
cn открывается следующим макаром:

cn.ConnectionString = "Provider = SQLOLEDB; Data Source = srvbase; Database = base1; Persist Security Info =True; User ID = pol; Password = pol"
cn.Open cn.ConnectionString,"pol","pol"

Ответить

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



ICQ: 300572769 

Вопросов: 1
Ответов: 4
 Профиль | | #5 Добавлено: 19.12.07 14:38
Добавил как Вы сказали
cn.Open cn.ConnectionString,"pol","pol"
при компилировании не ругается и принажатии кнопок..
но в базу записи не вставляет..
тупо нажимается и всё..

сатанизм какой-то :(

Ответить

Номер ответа: 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

Ответить

Номер ответа: 7
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #7 Добавлено: 19.12.07 17:45
USE database например активно используется в mysql.

Попробуй перефразировать:
insert into (колонка, колонка1, колонка2....) VALUES (1,2,3...);

Ответить

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



ICQ: 300572769 

Вопросов: 1
Ответов: 4
 Профиль | | #8 Добавлено: 20.12.07 11:18
Без USE base1
invalid object name

с вариантом
insert into (колонка, колонка1, колонка2....) VALUES (1,2,3...);
тоже ничего не происходит.
сдатется мне что тут что с подключением не так..

Ответить

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



ICQ: 148640473 

Вопросов: 135
Ответов: 270
 Профиль | | #9 Добавлено: 20.12.07 11:30
попробуй изменить connectionstring на следующую:
"Provider=SQLOLEDB.1;Password=pol;Persist Security Info=True;User ID=pol;Initial Catalog=base1;Data Source=srvbase"
 можеш описать структуры таблицы куда вставить пытаешся?

Ответить

Страница: 1 |

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



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