| Пытаюсь сделать запрос к БД через ADO: "SELECT * FROM SLTab WHERE Name Like '*мед'"
 не находит :(
 "SELECT * FROM SLTab WHERE Name LIKE 'Архимед'"
 находит
 т.е. не могу использовать LIKE.
 
 Как выкрутится? посоветуйте :)
 или хоть куда копать?
 
 Пользуюсь примером:
 
 #COMPILE EXE
#DIM ALL
 #INCLUDE "ADO.inc"
 #INCLUDE "WIN32API.INC"
 '------------------------------------------------------------------------------
 '------------------------------------------------------------------------------
 GLOBAL hDlg  AS DWORD
 GLOBAL LS() AS STRING
 '------------------------------------------------------------------------------
 '------------------------------------------------------------------------------
 %frmMain             =  101
 %IDC_BUTTON          = 1001
 %IDC_LISTBOX         = 1005
 '------------------------------------------------------------------------------
 '------------------------------------------------------------------------------
 DECLARE CALLBACK FUNCTION ShowfrmMainProc()
 DECLARE FUNCTION ShowfrmMain(BYVAL hParent AS DWORD) AS LONG
 '------------------------------------------------------------------------------
 '------------------------------------------------------------------------------
 SUB GetAccessData()
 LOCAL dbConn AS VARIANT
 LOCAL rsSet AS VARIANT
 LOCAL rsProducts AS ADODBRecordset
 LOCAL rsFields AS ADODBFields
 LOCAL rsField AS ADODBField
 LOCAL vFields AS VARIANT
 LOCAL vField AS VARIANT
 LOCAL bEOF AS VARIANT
 LOCAL lngColumn AS VARIANT
 LOCAL vOut AS VARIANT
 LOCAL lRes AS LONG
 LOCAL strFieldValue AS STRING
 LOCAL i AS LONG
 
 'Make a database connection (application path)
 SetDBconnection "Provider=microsoft.jet.OLEDB.4.0;Data Source='C:\Documents and Settings\Kompress\Мои документы\Заготовки\СловарьV\СловарьV.mdb'", %adUseClient, dbConn
 'Get the recordset
 GetRecordSetObj dbConn, "SELECT * FROM SLTab", %adUseClient, rsSet
 SET rsProducts = rsSet 'Load the ADODBRecordset object
 OBJECT CALL rsProducts.MoveFirst 'Goto the first record
 DO
 OBJECT GET rsProducts.EOF TO bEOF 'Get the end of file value
 IF ISTRUE VARIANT#(bEOF) OR i > 1000 THEN EXIT DO
 
 OBJECT GET rsProducts.Fields TO vFields 'Get the specific row fields
 SET rsFields = vFields
 
 lngColumn = 0 'Column number
 OBJECT GET rsFields.Item(lngColumn) TO vField 'Get column field
 SET rsField = vField
 OBJECT GET rsField.Value TO vOut 'Get field value /in this case a string/
 strFieldValue = VARIANT$(vOut)
 
 REDIM PRESERVE LS(i) AS STRING
 LS(i)=strFieldValue
 i = i + 1
 CONTROL SEND hDlg, %IDC_LISTBOX, %LB_ADDSTRING, 0, STRPTR(strFieldValue), TO lRes 'set text in list
 OBJECT CALL rsProducts.MoveNext 'Goto the next record
 LOOP
 'CONTROL ADD LISTBOX, hDlg, %IDC_LISTBOX, LS(), 3, 3, 168, 135
 ' MSGBOX  LS(0)
 SET rsField = NOTHING
 SET rsFields = NOTHING
 SET rsProducts = NOTHING
 CloseDBconnection dbConn 'Close the database
 
 END SUB
 '------------------------------------------------------------------------------
 '------------------------------------------------------------------------------
 FUNCTION PBMAIN()
 ShowfrmMain %HWND_DESKTOP
 END FUNCTION
 '------------------------------------------------------------------------------
 '------------------------------------------------------------------------------
 CALLBACK FUNCTION ShowfrmMainProc()
 
 SELECT CASE AS LONG CBMSG
 CASE %WM_INITDIALOG
 CASE %WM_NCACTIVATE
 STATIC hWndSaveFocus AS DWORD
 IF ISFALSE CBWPARAM THEN
 ' Save control focus
 hWndSaveFocus = GetFocus()
 ELSEIF hWndSaveFocus THEN
 ' Restore control focus
 SetFocus(hWndSaveFocus)
 hWndSaveFocus = 0
 END IF
 
 CASE %WM_COMMAND
 ' Process control notifications
 SELECT CASE AS LONG CBCTL
 CASE %IDC_BUTTON
 IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
 GetAccessData
 
 END IF
 END SELECT
 END SELECT
 END FUNCTION
 '------------------------------------------------------------------------------
 '------------------------------------------------------------------------------
 FUNCTION ShowfrmMain(BYVAL hParent AS DWORD) AS LONG
 LOCAL lRslt AS LONG
 
 DIALOG NEW  hParent, "ADO example", 70, 70, 173, 164, %WS_POPUP OR _
 %WS_BORDER OR %WS_DLGFRAME OR %WS_SYSMENU OR %WS_MINIMIZEBOX OR _
 %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME OR %DS_3DLOOK OR _
 %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_WINDOWEDGE OR _
 %WS_EX_CONTROLPARENT OR %WS_EX_TOPMOST OR %WS_EX_LEFT OR _
 %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO hDlg
 CONTROL ADD BUTTON,  hDlg, %IDC_BUTTON, "Get Data", 63, 141, 108, 21
 CONTROL ADD LISTBOX, hDlg, %IDC_LISTBOX, , 3, 3, 168, 135, %WS_CHILD OR _
 %WS_VISIBLE OR %WS_TABSTOP OR %WS_HSCROLL OR %WS_VSCROLL OR _
 %LBS_STANDARD OR %LBS_SORT OR %LBS_NOTIFY, %WS_EX_CLIENTEDGE OR _
 %WS_EX_STATICEDGE OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR _
 %WS_EX_RIGHTSCROLLBAR
 
 DIALOG SHOW MODAL hDlg, CALL ShowfrmMainProc TO lRslt
 
 FUNCTION = lRslt
 END FUNCTION
 '------------------------------------------------------------------------------
 Ответить
       |