Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Можно ли использовать такой код? SQL VB6 (внутри)
|
|||
|---|---|---|---|
|
#18+
Только начинаю писать на VB под базу SQL. Почитал литературу, как оказалось нет однозначных алгоритмов оперирования данными, одно и то же можно делать разными способами, это и вводит в заблуждение. Вот например код, нужно удалить таблицу если она есть, создать ее заново и заполнить и отобразить в гриде: ---------------------------------------- Dim strSQL As String Set RS = New ADODB.Recordset Public cnn As New ADODB.Connection strSQL = "if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[temp]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) " _ & "drop table [dbo].[temp] " _ & "CREATE TABLE [dbo].[temp] ( " _ & "[id] [int] IDENTITY (1, 1) NOT NULL , " _ & "[Id_Cnt] [int] NOT NULL , " _ & "[Product] [varchar] (255) COLLATE Cyrillic_General_CI_AS NULL , " _ & ") ON [PRIMARY] " _ & "insert into [temp] (Id_Cnt,Product) values(1,'Òîâàð À')" With RS .ActiveConnection = cnn .CursorLocation = adUseClient .CursorType = adOpenKeyset .LockType = adLockOptimistic .Source = strSQL .Open End With strSQL = "SELECT Id_Counter, Product FROM temp" With RS .ActiveConnection = cnn .CursorLocation = adUseClient .CursorType = adOpenKeyset .LockType = adLockOptimistic .Source = strSQL .Open End With Set gridTemp.DataSource = RS ---------------------------------------- Код выполняется, но я не уверен что это правильный вариант, подскажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2004, 19:32 |
|
||
|
Можно ли использовать такой код? SQL VB6 (внутри)
|
|||
|---|---|---|---|
|
#18+
В принципе то все верно только подобные вещи нужноделать не из VB кода а переносить в хранимую процедуру на сервере и вызывать ее. И вернее и быстрее. Да и 2 рекордсета ни к чему. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2004, 20:16 |
|
||
|
Можно ли использовать такой код? SQL VB6 (внутри)
|
|||
|---|---|---|---|
|
#18+
Работать-то работает, но мало ли, может до тех пор пока память не загадится или чего там еще. Ведь кое что можно было реализовать через Connection, а можно было задействовать и Command и это не спроста придумано, а я все на рекордсетах забабахал. Насколько это можно назвать "правильным" кодом? Замусоривается ли так память больше или наоборот меньше и вообще как принято писать в общих чертах, можно с примером. Где тут 2 рекордсета? Вроде он тут один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2004, 09:36 |
|
||
|
Можно ли использовать такой код? SQL VB6 (внутри)
|
|||
|---|---|---|---|
|
#18+
Один - это номинально, а по существу у тебя их два. Назначение первого мало понятно. Если тебе надо создать TEMP таблицу, то используй Command - зачем для этого Recodset для меня загадка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2004, 11:32 |
|
||
|
Можно ли использовать такой код? SQL VB6 (внутри)
|
|||
|---|---|---|---|
|
#18+
Мне зачем? Просто попробовал и сработало! Вопрос в том зачем разбаотчики это сделали возможным? Почему нельзя было сделать работу с рекордсетами отдельно, с хранимыми процедурами отдельно, с конекшенами отдельно и однозначно, к чему весь этот бардак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2004, 12:52 |
|
||
|
Можно ли использовать такой код? SQL VB6 (внутри)
|
|||
|---|---|---|---|
|
#18+
Нет никакого бардака, то как ты умудрился сделать мало кому придет в голову. Recodset - для дин. хранения результата выборки/вычислений над таблицами Command - для выполения исполняемых запросов типа INSERT/DELETE/UPDATE, вообщем когда не нужно возвращать никаких полей. И Recodset и Command используют объект Connection - он находится на верхнем уровне иерархии ADO и для доступа к любым объектам ADO сначала необходимо создать объект Connection (он создается явно или неявно, но всегда присутствует). Объект Connection нужен для установки подключения, параметры которго потом используют объекты: Recodset, Command. ADO вообще разрабатывалась как новая универсальная библиотека доступа к базам данных. В отличии от DAO, которая является бибиотекой исключительной Access'вской (вот в ней как раз уже приличный бардак уже накопился за все эти годы), ADO можно применять для доступа к ЛЮБОЙ базе данных, которая предоставили поддержку в своей базе этому стандарту(за этим долго не станет). Т.к. библиотека новая, то программисты спроектировали ее учтя весь предыдущий опыт и она получилась очень ясная и прозрачная. Так никакой путаницы нет, путаница у тебя в голове, верно ты решил не тратить время хотя бы на общее изучение иерархии библиотеки вот и чертыхаешься теперь... P.S. кстати, хранимые процедуру относятся к внутренним объектам базы данных и для доступа к ним вместе с такими объектами как таблицы, группы и пользователи (еще и Views) необходимо использовать другую библиотеку - ADOX - которая как раз предназначена для манипулирования структурой базы данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2004, 14:23 |
|
||
|
Можно ли использовать такой код? SQL VB6 (внутри)
|
|||
|---|---|---|---|
|
#18+
Вопрос в том зачем разбаотчики это сделали возможным? Почему нельзя было сделать работу с рекордсетами отдельно, с хранимыми процедурами отдельно, с конекшенами отдельно и однозначно, к чему весь этот бардак? Разработчики просто дали тебе различные возможности. Рекордсет служит для получения данных по твоему запросу. Сам запрос для него - текст, не более, он передается на сервер и там обрабатывается. На клиентской стороне нет возможности узнать вернет ли товй запрос результат или это просто создание таблицы. Разве что одним из параметров рекордсета ты укажешь тип запроса(хранимка, текст, команда), это кстати тоже рекомендуется для ускорения работы. Если заранее знаешь что процедура не возвращает результаты, вызывай ее через соеденение. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2004, 14:23 |
|
||
|
|

start [/forum/search_topic.php?author=Guest__t&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 739ms |
| total: | 895ms |

| 0 / 0 |
