Visual Basic: новости сайтов, советы, примеры кодов.
Выпуск 196.


VBNet VBMania
Голосование:



Рассылки Subscribe.Ru
VB.NET-World
Новости сайта IgorykSoft и советы по программированию
DanSoft о Visual Basic
Visual Basic.NET Уроки.

Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
  • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

       Новый выпуск!
    Читайте!


    Содержание выпуска




    Citycat by Email

       Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое.
       Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.

    наверх


    Новости сайта VBNet

    Дата: 13.09.2003 10:12 | Раздел: Примеры кода | Автор: Половый Александр

    TrayIcon - От автора: Используя пример Антонова Д.А. я постарался простыми методами VB реализовать основные приемы работы с икнонкой в трее: - добавить, убрать иконку в трее; - всплывающее меню на иконке в трее; - замена ToolTip на иконке в трее; - замена картинки на иконке в трее; - непрерывное чередование картинок на иконке в трее; - мигание иконки в трее.

    Дата: 13.09.2003 10:09 | Раздел: ActiveX контролы | Автор: Менглиев Максим aka Shark

    DLLCollection - От автора: Коллекция из 62 функций, разбитая на 4 библиотеки: 1) Files_And_Folders - функци работы с файлами и папками; 2) Form_Action - функции работы с формой; 3) Text_Operation - функции работы с текстовыми строками; 4) Windows_Function - функции взаимодействия с операционной системой. Помощь прилагается.



    Последние 20 тем форума на VBNet.Ru:

    10:43 / 16 сен.  Координаты курсора  | Хитов: 0 |  Ответов: 0
    09:56 / 16 сен.  RichTextBox | Хитов: 3 |  Ответов: 0
    09:54 / 16 сен.  Форум по почте | Хитов: 2 |  Ответов: 0
    07:34 / 16 сен.  Вызов функции COM+ | Хитов: 14 |  Ответов: 1
    22:32 / 15 сен.  папочки | Хитов: 19 |  Ответов: 1
    19:10 / 15 сен.  Прокси | Хитов: 14 |  Ответов: 0
    17:58 / 15 сен.  Анализатор своего языка | Хитов: 21 |  Ответов: 1
    17:00 / 15 сен.  Word и .net | Хитов: 18 |  Ответов: 2
    16:53 / 15 сен.  ActiveX: экспорт меню на форму. | Хитов: 9 |  Ответов: 0
    14:33 / 15 сен.  Где? | Хитов: 19 |  Ответов: 0
    14:05 / 15 сен.  Трабл насущный | Хитов: 17 |  Ответов: 0
    13:49 / 15 сен.  "Can't find project or library" | Хитов: 12 |  Ответов: 0
    12:56 / 15 сен.  Модератору.Срочно. | Хитов: 23 |  Ответов: 0
    11:58 / 15 сен.  Cystal Report 7 | Хитов: 16 |  Ответов: 0
    09:30 / 15 сен.  Цастота экрана??? | Хитов: 20 |  Ответов: 2


    Последние поступления в Библиотеку кодов:

    Как создать в IIS виртуальную директорию (36)

    наверх


    Новости сайта MSDN



    наверх


    Новости сайта GotdotNet

      Внимание! Новая версия GotDotNet.RU доступна для тестирования! Скоро наш сайт переедет на новую платформу. Новый дизай, новая структура, новый "движок". Бета-версия доступна для тестирования уже сегодня по адресу www.gotdotnet.ru/GDNNew! Читайте подробности о новой версии, обсуждайте в форуме!


    Новые статьи:



    наверх


    Новости сайта dotSite

    Новые статьи:



    Новые примеры:



    наверх


    Один момент из жизни форума: Word и .net

    Вопрос:
    Автор вопроса: WaX

       Делаю так:

    Dim wordApp As New Word.Application()
    wordApp.Documents.Open("c:\data.doc") ', False, False, False, "", "", False, "", "", "wdopenformatauto")
    wordApp.ActiveDocument.Activate()
    With wordApp.ActiveDocument
    .ActiveWindow.Selection.WholeStory()
    With .ActiveWindow.Selection.Font
    .Name = "Times New Roman"
    End With
    End With
    wordApp.ActiveDocument.Save()
    wordApp.ActiveDocument.Close()

       Мне пишут: "Close' is ambiguous across the inherited interfaces 'Word._Document' and 'Word.DocumentEvents_Event'".
       Что бы это значило?


    Ответы:

    Автор: Артём Л.
       Есть такая штука, и с ней я тоже намучался. Если вам нужно закрыть все окна Word, используйте WordApp.Documents.Close(False(true)), по-моему ещё можно для отдельных использовать Documents.Item(). Если нужно закрыть приложение вобще, то ничего кроме как CallByName(WordApp, "Quit", CallType.Method) не смог придумать....



    наверх


    Доска объявлений

       Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

    наверх

    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:


    Автор вопроса: Дмитрий

    Ответ ожидается по этому адресу

       Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
    Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)

    С помощью этих трех функций можно отобразить окно выбора папки. Что нужно сделать чтобы в этом окне появилась кновпка Создать? По умолчанию ее там нет.


    Автор вопроса: Дмитрий

    Ответ ожидается по этому адресу

       Как в окно сообщения MessageBox добавить элемент управления CheckBox? Желательно чтобы не пришлось писать собственный контрол на эту тему.


    Автор вопроса: Димон

    Ответ ожидается по этому адресу

       Есть два вопроса.
    1 Как с помощью проги создать ярлыки с параметрами?
    2 Как выключить компьютер, перепробывал пару примеров, в том числе и на Vb .net, ничего не работает, функция проходит и на этом все.


    Автор вопроса: Vao

    Ответ ожидается по этому адресу

       Наверное многие делали в Access 2002 импорт данных в базу. Вопроc в следующем. Как сделать это программно на VB (если есть какая-нибудь разница для импорта из источников различного формата, то прежде всего интересует импорт из файла в формате XML).


    Автор вопроса: Vao

    Ответ ожидается по этому адресу

       В своей проге испольяую объект ADOX.Catalog для получения в контроле ListBox списка всех таблиц, содержащихся в баяе. При установке соединения c БД все гладко:

    Set Cnct = New ADODB.Connection
    Call Cnct.Open(Connect_Path)

    Но как только идет инициалияация обекта ADOX.Catalog:

    Set Ctlg = New ADOX.Catalog
    Set Ctlg.ActiveConnection = Cnct

    выдается ошибка 429 "ActiveX component can't create object", причем это происходит только на отдельных компах.
    Пробовал подключать к проекту разные версии библиотек, попробовал даже поставить на один из тех компов VB - не помогло. В чем тут дело?


    Автор вопроса: Kirill I. Vinokurov

    Ответ ожидается по этому адресу

       Подкиньте, пожалуйста, пример для определения CRC32. А то на сайте ссылка не работает.


    Автор вопроса: Максим

    Ответ ожидается по этому адресу

       У меня в переменной сохранен текст веб-страницы.
    Я вношу изменения в этот текст и вот вопрос: как теперь эту страницу исполнить в webbrowser?
    Я, конечно, могу сохранить на диск и загрузить с диска, но это мне не подходит.


    Автор вопроса: Максим

    Ответ ожидается по этому адресу

       Необходимо, чтобы в процедуру подставлялась формула, введённая пользователем. Т.е. например, в TextBox вводится формула: 5*x^2+12. Процедура следующая:

    Private Sub Command1_Click()
    x=0
    For i = 1 to 10
    y(i)=text1
    List1.AddItem Format(y(i), "0.00000")
    x=x+1
    next
    End Sub

    Пробовал возиться с функцией EbExecuteLine, но либо я с ней не разобрался, либо она для этого не годится. В место х она подставляет 0 и в итоге ListBox заполнен цифрой 12. Если кто-нибудь сталкивался с такой задачей, то поделитесь успехами с народом. Он Вас не забудет.


    Автор вопроса: Данила

    Ответ ожидается по этому адресу

       Как народ умудряется писать такие маленькие контролы? У меня меньше 100Кб не получается (хотя подобный занимает 25)


    Автор вопроса: Максим

    Ответ ожидается по этому адресу

       А что значит Option Compare Text?


    Автор вопроса: Vlasenko Fedor

    Ответ ожидается по этому адресу

       Помогите вставить форму в панель меню EXCEL 2002.

    Option Explicit
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
                             (ByVal lpClassName As String, _
                              ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
                             (ByVal hWnd1 As Long, _
                              ByVal hWnd2 As Long, _
                              ByVal lpsz1 As String, _
                              ByVal lpsz2 As String) As Long
    Private Declare Function GetWindow Lib "user32" _
                             (ByVal hwnd As Long, _
                              ByVal wCmd As Long) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
                             (ByVal hwnd As Long, _
                              ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
                             (ByVal hwnd As Long, _
                              ByVal nIndex As Long, _
                              ByVal dwNewLong As Long) As Long
    Private Declare Function GetWindowRect Lib "user32" _
                             (ByVal hwnd As Long, _
                              lpRect As RECT) As Long
    Private Declare Function SetParent Lib "user32" _
                             (ByVal hWndChild As Long, _
                              ByVal hWndNewParent As Long) As Long


    Private Type RECT
             Left As Long
             Top As Long
             Right As Long
             Bottom As Long
    End Type

    Private Const GWL_STYLE = (-16)
    Private Const WS_BORDER = &H800000
    Private Const WS_CAPTION = &HC00000
    Private Const WS_POPUP = &H80000000
    Private Const WS_SYSMENU = &H80000
    Private Const SWP_FRAMECHANGED = &H20
    Private Const SWP_NOREPOSITION = &H200
    Private Const SWP_NOZORDER = &H4
    Public Sub CreateMyBar()
    Dim MyBar As CommandBar
    Dim butMyBar As CommandBarButton
    Dim FormHwnd As Long, ExHwnd As Long, BarHwnd As Long, XldeskHwnd As Long
    Dim frmStyle As Long
    Dim xlR As RECT
         'Индитификатор XLDESK окна
    ' XldeskHwnd = FindWindowEx(Application.hwnd, 0, "XLDESK", vbNullString)
         'Кординаты XLDESK окна
    ' GetWindowRect XldeskHwnd, xlR
         'Проверка наличия меню
         For Each MyBar In CommandBars
             If MyBar.Name = "DocBar" Then Application.CommandBars("DocBar").Delete
         Next
         'Соядаем меню
         Set MyBar = Application.CommandBars.Add("DocBar", msoBarRight, False, True)
             MyBar.Protection = msoBarNoMove
         Set butMyBar = Application.CommandBars("DocBar").Controls.Add(msoControlButton)
             butMyBar.Height = 200
             butMyBar.Width = 550 'ВОПРОС, КАК СДЕЛАТЬ ЭТО ЗНАЧЕНИЕ
         MyBar.Visible = True 'butMyBar.Width = xlr.Bottom-xlr.Top
                                  'ПРИ ЭТОМ ОТОБРАЗИТЬ ФОРМУ 200х400
         'Загружаем форму
         Load MyForm
         'Индитификатор формы
         FormHwnd = FindWindow("ThunderDFrame", MyForm.Caption)
         'Читаем и ияменяем стиль формы
         frmStyle = GetWindowLong(FormHwnd, GWL_STYLE) _
         - WS_CAPTION - WS_BORDER - WS_POPUP - WS_SYSMENU
         'Индитификатор Excel 2 окна
         ExHwnd = FindWindowEx(Application.hwnd, 0, "EXCEL2", vbNullString)
         'Индетификатор панели DocBar
         BarHwnd = FindWindowEx(ExHwnd, 0, "MsoCommandBar", "DocBar")
         'Наяначаем нового родителя
         SetParent FormHwnd, BarHwnd
         'Устанавливаем стили формы
         SetWindowLong FormHwnd, GWL_STYLE, frmStyle
         SetWindowLong FormHwnd, -20, &H0
         'Покаяываем форму
         MyForm.Show
    End Sub




    Ответы:


    Вопрос:

       Вопрос по ADO
    На серваке MSSQL2000 есть база. Есть хранимая процедура.
    Хочу открыть рекордсет с возможностью перемещения по записям вверх-вниз.
    Вот такой код.

    Dim rs As ADODB.Recordset, cm As ADODB.Command, param As ADODB.Parameter, dDate As Date
    Set cm = New ADODB.Command
    Set cm.ActiveConnection = cn
    cm.CommandType = adCmdStoredProc
    cm.CommandText = "usr_repWSP"
    Set param = cm.CreateParameter("dDate", adDate, adParamInput, , dDate)
    cm.Parameters.Append param
    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.CursorType = adOpenStatic
    Set rs = cm.Execute

    После выполнения последней строки, рекодсет почему то становится ForwardOnly и adUseServer (как по умолчанию), игнорируя предыдущие установки и естессно метод rs.moveprevious вызывает ошибку. Если же я открываю рекордсет таким образом:

    rs.Source = "sql-запрос такой как в хранимой проц. на серваке"
    rs.activeconnection = cn
    rs.Open

    то он чудесно открывается как и надо в соответствие с установленными свойствами.
    Статический курсор использую из-за того, что запрос с групповой операцией. Помогите разобраться в чём дело? Перепробовал всякие варианты. Неужели через объект ADO.Command невозможно так сделать?

    Ответ:

    Автор ответа: Alexander

    Да, вот ещё что:

    >Set rs = New ADODB.Recordset
    >rs.CursorLocation = adUseClient
    >rs.CursorType = adOpenStatic
    >Set rs = cm.Execute

    > После выполнения последней строки, рекодсет почему то становится ForwardOnly и adUseServer (как по умолчанию)...

    В дополнение можно добавить, что "Set rs = cm.Execute" не обладает никаким "интеллектом" и присваивает умолчания из Connection. Поэтому, например, надо делать так:

           cm.CursorLocation = adUseClient, а не rs.CursorLocation = adUseClient
    !

    Т.е. оптимальный способ "лепить-что-хочешь", всё же использование полной конструкции для Recordset:

          recordset.Open Source, ActiveConnection, CursorType, LockType, Options

    Великолепно то, что и Connection и Recordset выполняют такие сложнейшие SQL-конструкции за кратчайшее время, что диву даёшься! Поэтому предпочительнее выполнять "Select...", вместо метода .Find, например.


    Вопрос:

       Использовать функции GDI в GDI+ не катит. Мне нужно что-нибудь аналогичное getpixel/setpixel. И createbitmap с selectobject. В общем, это нужно перевернуть картинку. Не удивлюсь, если в .net уже есть класс для этой беды. Но мне еще нужно будет копировать это на поверхность DirectDrawSurface7! Трюк с методом getCD не пройдет. А может directdraw сам может отразить зеркально? Посоветуйте как решить задачу!

    Ответ:

    Автор ответа: Butch

    Используй BLTFX. Вот тебе пример зеркального отражения слева на право

    rcSource As RECT
    rcDest As RECT
    ddbltfx as DDBLTFX
      
    ddbltfx.lDDFX = DDBLTFX_MIRRORLEFTRIGHT
      
    rcSource.top = 0
    rcSource.left = 0
    rcSource.bottom = 100
    rcSource.right = 200
    rcDest.top = 0
    rcDest.left = 201
    rcDest.bottom = 100
    rcDest.right = 401
      
    DDS.BLTFX(rcDest,DDS,rcSource,DDBLT_WAIT Or DDBLT_DDFX,ddbltfx)

    Если что-то не понятно намыль мне


    Вопрос:

       Есть программа, написанная на VB. Как сделать ее ShareWare, т.е. как организовать временное ограничение так, что бы над его снятием человеку пришлось бы довольно долго повозиться и все же согласиться заплатить оговоренную сумму?
    Вопрос тот же, но теперь он относиться в DLL - компонентам. Если можно, то расскажите про методы постановки защиты и методах ее обхода.
    Согласен что все это тянет на приличную статью, но может есть линки на уже готовую доку (можно даже с примерами)

    Ответ:

    Автор ответа: Anton Lozovski

    Например, в коде, особенно в DLL, при инициализации класса и при вызове его методов, можно обращаться к нижеуказанной функции. И если она вернет True, ничего не делать. Самый простой вариант, ИМХО, и лечится изменением системной даты.
      
    private function isExpired() as boolean
         if val(year(date())) > 2002 then
             isExpired = True
             msgbox "Время халявы прошло, господа!" , vbSetForeground
         endif
    end function


    Вопрос:

       Как изменить формат бумаги для принтера в VB6 в операционнной среде win2000NT?

    Ответ:

    Автор ответа: Kuznetsoft

    Printer.Orientation


    Вопрос:

       Проблема такая. Нужна прога, типа телефонного справочника, которая по заданным параметрам умела находить нужную строку в базе данных, если есть у кого простой пример, просьба намылить.

    Ответ:

    Автор ответа: Данила

    Тебя какая база интерисует? Если ADO, то так:

    Dim rs As Recordset
    Set rs = база.OpenRecordset("select коды.код, from коды where
    коды.ID='всякая ерунда'", dbOpenDynaset)

        Можешь использовать уже открытый набор:

    rs.findfirst "коды.код, from коды where коды.ID='всякая ерунда'"

        Искать в таблице медленно, я не рекомендую.



    Ответ:

    Автор ответа: Vao

    Я как раз деляю телефонный справочник, типа записной книжки. Проблему поиска я решил так:

    Private Sub Search() 'cule cioo a nraecol
    Dim i_Loc As Integer
    i_Loc = 1
    Dim j As Integer
    j = 0
    With Form_rez
    ProgressBar.Max = BD_Recordset.RecordCount
    ProgressBar.Value = 0
    BD_Recordset.MoveFirst
    Do While Not BD_Recordset.EOF
         'Yes_In_BD = False
         For j = 0 To Num_Of_Controls
             Select Case j
                  Case 0: Call FieldCheck(f) 'Значения в скобках - имена текстовых полей на форме
                  Case 1: Call FieldCheck(i)
                  Case 2: Call FieldCheck(o)
                  Case 3: Call FieldCheck(dr)
                  Case 4: Call FieldCheck(c)
                  Case 5: Call FieldCheck(st)
                  Case 6: Call FieldCheck(h)
                  Case 7: Call FieldCheck(crp)
                  Case 8: Call FieldCheck(fl)
                  Case 9: Call FieldCheck(telh)
                  Case 10: Call FieldCheck(telm)
                  Case 11: Call FieldCheck(telw)
                  Case 12: Call FieldCheck(mail)
                  Case 13: Call FieldCheck(pr)
             End Select
         Next j
         
         Dim All_Field_In_BD As Boolean ' nir?rer n?cnrle ?ni ariir? crdcnu oaiaelnaid?ln one-?e dicner
         All_Field_In_BD = True
         
         For j = 0 To Num_Of_Controls
             All_Field_In_BD = All_Field_In_BD And Yes_In_BD(j)
         Next j
         
         If All_Field_In_BD = False Then GoTo JUMP
      
         .Rez.AddItem ("-|-")
         For j = 0 To Num_Of_Controls - 1
             Select Case j
                  Case 0: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(f)
                  Case 1: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(i)
                  Case 2: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(o)
                  Case 3: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(dr)
                  Case 4: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(c)
                  Case 5: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(st)
                  Case 6: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(h)
                  Case 7: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(crp)
                  Case 8: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(fl)
                  Case 9: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(telh)
                  Case 10: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(telm)
                  Case 11: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(telw)
                  Case 12: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(mail)
                  Case 13: Form_rez.Rez.TextMatrix(i_Loc, j) = OutPut(pr)
             End Select
         Next j
    i_Loc = i_Loc + 1
    JUMP:
    BD_Recordset.MoveNext
    ProgressBar.Value = ProgressBar.Value + 1
    Loop

    Dim Max_Len As Integer
    For j = 0 To Num_Of_Controls
         Max_Len = Len(.Rez.TextMatrix(0, j)) * 136
         For i_Loc = 0 To .Rez.Rows - 1
             If Len(.Rez.TextMatrix(i_Loc, j)) * 136 > Max_Len _
                 Then Max_Len = Len(.Rez.TextMatrix(i_Loc, j)) * 136 '- Len(.Rez.TextMatrix(i_Loc, j))
         Next i_Loc
         .Rez.ColWidth(j) = Max_Len
    Next j
      
    Form_rez.TotalLabel.Caption = "Irealii crdcnle: " & (i_Loc - 1)
    ProgressBar.Value = 0
    End With
    End Sub

    Private Sub FieldCheck(TXT As TextBox) ' iddlale?le lnnu ec ariiil cir?licl a AA
    If Len(TXT.Text) <> 0 _
         Then
             If InStr(1, BD_Recordset(TXT.Name).Value, TXT.Text, vbTextCompare) <> 0 _
                 Then
                     Yes_In_BD(TXT.TabIndex) = True
                 Else
                     Yes_In_BD(TXT.TabIndex) = False
             End If
         Else ' lnec diel donnil ni n?cnrle, ?ni iii lnnu a AA
              '(irddceld dicne nier di orececc - dieuciarnlet di ocao cir?lic? adoaco diele)
             Yes_In_BD(TXT.Tag) = True
    End If
    End Sub

    Private Function OutPut(TXT As TextBox) As String
    OutPut = BD_Recordset(TXT.Name).Value
    If OutPut = Empty_Value Then OutPut = ""
    End Function



    Ответ:

    Автор ответа: Роман

    Есть у меня телефонный справочник, сам делал. Без картинок и баз данных (FoxPro 3.0) весит 100кб, а вместе с ними 1,341 мб (это исходники на VB6). Использует DBGRID32.OCX, TABCTL32.OCX, MSMASK32.OCX, mscomctl.ocx, DBLIST32.OCX. Могу отправить, если нужно.



    Ответ:

    Автор ответа: Anton Lozovski

    Саамый простой способ - конвертнуть базу в лист Экселя, и пользоваться автофильтром.



    Ответ:

    Автор ответа: Anton Lozovski

    Для начала почитай документацию по ADO и SQL.


    Вопрос:

       Как в VB пользоваться сервисом Telnet? Winsock выдает что-то вроде "яэ.яэ.яэ#яэ'яэ$"

    Ответ:

    Автор ответа: Anton Lozovski

        А обычным телнетом подключаться пробовал? Пуск/Выполнить/Telnet.exe И в настройках пропиши удаленный хост/порт. И что он выдает? Винсок должен выдавать то, что получает в свой порт от удаленной машины. Если обычным телнетом у тебя выдает не то, что выдает тебе твой код - рой в коде. Проверь свойства RemoteHost (RemoteHostIP), Protocol и RemotePort, а также запусти netstat.exe - a n1 и посмотри что у тебя вообще куда подключено.
        И найди где-то на isi.edu RFC по портам и посмотри для каких служб они стандартно промапены (изначально были промапены порты от 0 до 1023, дальше коммерческие организации стали платить за то, чтобы определенные номера были промапены за ними).


    Вопрос:

       У меня ACCESS-овская база данных в одной из таблиц которой имеется поле MySound типа OLE Object. Как с помощью SQL запроса произвести изменения в этом поле, если новое значение я имею в виде байтового массива?

    Ответ:

    Автор ответа: Vir

    Данный код сохраняет файл в БД через массив
      
         Dim dbsFoto As New ADODB.Connection
         Dim rstFormat As New ADODB.Recordset
         Dim buffer() As Byte
         
         GetObject hBmp, LenB(bmp), bmp
         dbClass.OpenBD dbsFoto
         rstFormat.Open "SELECT Pic FROM Foto_PicFon", dbsFoto, adOpenStatic, adLockOptimistic, adCmdText
         With rstFormat
             .AddNew
             Open App.path & "\Temp.jpg" For Binary Access Read As 1
                 ReDim buffer(LOF(1) - 1)
                 Get 1, , buffer()
             Close
             rstFormat!Pic = buffer()
             .Update
             .Close
         End With
         dbsFoto.Close




    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх


    Выпуск подготовили:

    Сурменок Павел