Страница: 1 |
Вопрос: Чтоб не "гадить" на форуме... | Добавлено: 18.07.07 09:13 |
Автор вопроса: ![]() |
Хочу научиться работать с АДО без контролов на форме. В ВБ при работе с АДО есть такие "штуки" как: 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 Автор ответа: ![]() ![]() ![]() 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.0 ![]() objConn.Open Set rsRecordset = objConn.Execute("SELECT id FROM projects WHERE ..." ![]() Do Until rsRecordset.EOF lngID = rsRecordset("id" ![]() MsgBox lngID rsRecordset.MoveNext Loop rsRecordset.Close objConn.Close Set rsRecordset = Nothing Set objConn = Nothing End Sub |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ICQ: 295002202 Вопросов: 87 Ответов: 1684 |
Профиль | Цитата | #2 | Добавлено: 18.07.07 10:49 |
В ссылках (проект->ссылки...) подключено Microsoft ActiveX Data Objects 2.7 Library
Я пользуюсь 2.7, кстати, может есть что-нибудь получше? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 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 Автор ответа: ![]() ![]() ![]() ICQ: 295002202 Вопросов: 87 Ответов: 1684 |
Профиль | Цитата | #4 | Добавлено: 18.07.07 14:02 |
RA (Millenium), мож у меня с англиским плохо, но ниче кроме ADODB я там ненашел. Только трафф потратил =(
|
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 454 |
Профиль | Цитата | #5 | Добавлено: 18.07.07 18:05 |
..объявлять или присваивать - Recordsource или recordset?
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..." ![]() |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 60 Ответов: 808 |
Профиль | Цитата | #6 | Добавлено: 21.07.07 15:55 |
пробельчики удаляем, да?
открой примеры, там есть неплохие по работе с базами. на vbrussian.com тоже ниче |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 629966 Вопросов: 118 Ответов: 903 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 24.07.07 10:51 |
в MSDN есть такое:
Microsoft ActiveX Data Objects 2.7 Library Coding Sample |
Страница: 1 |
|