Страница: 1 |
Страница: 1 |
Вопрос: Чтоб не "гадить" на форуме...
Добавлено: 18.07.07 09:13
Автор вопроса: fuzytsfcrew | Web-сайт:
Хочу научиться работать с АДО без контролов на форме. В ВБ при работе с АДО есть такие "штуки" как: Recordsource, recordset, execute. Каждая из них может работать с sql операторами. но что каждая из них значит я запутался. recordset - это вроде бы набор записей, получившихся в результате запроса. если я укажу recordsource "SELECT......" для нового конекта у него автоматом будет такой же recordset? Можно както по полкам разложить? Понятно, что сразу нужно объявить конект и т.п.
dim con as ADODB.Coneection
set con = new ADODB.conection
conectionstring = "Provider=Microsoft.Jet........"
con.Open conectionstring
А потом чего делать? что теперь объявлять или присваивать - Recordsource или recordset? или вообще Execute у конекта делать?
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #1
Добавлено: 18.07.07 10:40
Вот упрощенный вариант выборки из базы взятый из моего проекта.
Public Sub UpdateProjects()
Dim objConn As ADODB.Connection
Dim rsRecordset As ADODB.Recordset
Dim lngID As Long
Set objConn = CreateObject("ADODB.Connection"
Set rsRecordset = CreateObject("ADODB.Recordset"
objConn.Mode = adModeRead
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0ata Source=db.mdb"
objConn.Open
Set rsRecordset = objConn.Execute("SELECT id FROM projects WHERE ..."
Do Until rsRecordset.EOF
lngID = rsRecordset("id".Value
MsgBox lngID
rsRecordset.MoveNext
Loop
rsRecordset.Close
objConn.Close
Set rsRecordset = Nothing
Set objConn = Nothing
End Sub
Номер ответа: 2
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #2
Добавлено: 18.07.07 10:49
В ссылках (проект->ссылки...) подключено Microsoft ActiveX Data Objects 2.7 Library
Я пользуюсь 2.7, кстати, может есть что-нибудь получше?
Номер ответа: 3
Автор ответа:
Millenium
ICQ: 629966
Вопросов: 118
Ответов: 903
Web-сайт:
Профиль | | #3
Добавлено: 18.07.07 12:28
По лучше? Заход ина http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/VB_Databases/Q_21037603.html
Номер ответа: 4
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #4
Добавлено: 18.07.07 14:02
RA (Millenium), мож у меня с англиским плохо, но ниче кроме ADODB я там ненашел. Только трафф потратил =(
Номер ответа: 5
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #5
Добавлено: 18.07.07 18:05
Recordsource - этого нет в ADODB.
Dim cnn As ADODB.Connection
Dim rec As ADODB.Recordset
Dim cmd As ADODB.Command
Вот объекты могут выполнять SQL-запросы.
сnn.Execute()
cmd.Execute()
rec.Open()
Execute - это функция, и значит она что-то возвращает. А возвращает она объект набора записей(рекордcет), если конечно правильный синтаксис SQL и сnn.State=1.
Set rec = сnn.Execute(..) - присваивает переменной rec возвращенное значение. Для чего?
Видимо для удобства перемещения по записям. (rec.movenext... итд)
Но нужно ли это, например, для запросов INSERT или UPDATE?
Или вот: GetRows() - эта функция возвращает массив
Variant.
dim ar() as Variant
ar()=rec.GetRows() - зачем лишняя переменная rec?
ar()=cnn.Execute("SELECT...".GetRows()
Номер ответа: 6
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #6
Добавлено: 21.07.07 15:55
пробельчики удаляем, да?
открой примеры, там есть неплохие по работе с базами. на vbrussian.com тоже ниче
Номер ответа: 7
Автор ответа:
Millenium
ICQ: 629966
Вопросов: 118
Ответов: 903
Web-сайт:
Профиль | | #7
Добавлено: 24.07.07 10:51
в MSDN есть такое:
Microsoft ActiveX Data Objects 2.7 Library Coding Sample