- Код: Выделить всё
SELECT * FROM TABLE1 WHERE * = 'VALUE1'
В этом запросе допущена ошибка для аглядности. Как реализовать вышеописанное?

SELECT * FROM TABLE1 WHERE * = 'VALUE1'
:shock:sergey-911 писал(а):каждое поле - поставщик.
'Заполнение грида всеми данными
Dim Soedinenie As String 'Параметры подключения
Dim query As String
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
MousePointer = 11
Soedinenie = "PROVIDER=MSDASQL;dsn=PRICE;uid=USER1;pwd=PASS;"
query = "SELECT * FROM Table1 "
Set cn = New ADODB.Connection
cn.Open (Soedinenie)
Set rs = cn.Execute(query)
Set VSFlexGrid1.DataSource = rs
Set VSFlexGrid1.DataSource = Nothing
rs.Close
Set rs = Nothing
Set cn = Nothing
MousePointer = vbDefault
'Поиск1
Dim Soedinenie As String
Dim query As String
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
Dim i As Integer
MousePointer = 11
Soedinenie = "PROVIDER=MSDASQL;dsn=PRICE;uid=USER1;pwd=PASS;"
query = "SELECT * FROM Table1 WHERE "
VSFlexGrid1.Row = 0
For i = 1 To VSFlexGrid1.Cols - 1
VSFlexGrid1.Col = i
query = query & "[" & VSFlexGrid1.Text & "] Like '%" & Replace(Text1.Text, "*", "_") & "%' OR "
Next
VSFlexGrid1.Col = i
query = query & "[" & VSFlexGrid1.Text & "] Like '%" & Replace(Text1.Text, "*", "_") & "%'"
Set cn = New ADODB.Connection
cn.Open (Soedinenie)
Set rs = cn.Execute(query)
Set VSFlexGrid1.DataSource = rs
Set VSFlexGrid1.DataSource = Nothing
rs.Close
Set rs = Nothing
Set cn = Nothing
MousePointer = vbDefault
VSFlexGrid1.Row = 0
For i = 1 To VSFlexGrid1.Cols - 1
VSFlexGrid1.Col = i
While Not rs.EOF
If Text1.Text = rs.Fields(0) & "" Then
VSFlexGrid1.IsSelected(j) = True 'Выделяем запись в таблице
End If
rs.MoveNext
Wend
Next
sergey-911 писал(а):запчасти. Ты имеешь ввиду
Private Sub txFilter_Change()
Static sOld As String
Dim s As String, jc As GridEX20.JSColumn, ss As String, r As DAO.Recordset
s = Trim$(txFilter.Text)
If 0 = StrComp(s, sOld, vbTextCompare) Then Exit Sub
sOld = s
Set r = Grid.Recordset
If Len(s) Then
If Left$(s, 1) <> "*" Then s = "*" & s
If Right$(s, 1) <> "*" Then s = s & "*"
s = " LIKE '" & Replace(s, "'", "''") & "'"
For Each jc In Grid.Columns
If jc.Visible Then
If Len(ss) Then ss = ss & " OR "
ss = ss & jc.DataField & s
End If
Next jc
m_r.Filter = ss
Grid.HoldFields
Set Grid.Recordset = m_r.OpenRecordset
Else
Grid.HoldFields
Set Grid.Recordset = m_r
End If
End Sub
sergey-911 писал(а):А что ты имеешь ввиду под програмным перебором RecordSet-a? Не:
For Each f In r.Fields
Select Case f.Type
Case adInteger, adLong, adByte
....
Case adVarWChar, adWChar, adVarChar, adChar
....
End Select
Next
sergey-911 писал(а):Кстати, не подскажешь, почему Grid Заполняется гораздо быстрее через DataSet, нежели, если его заполнять в цикле (VSFlexGrid1.Text = rs.Fields(0) &"" )?
Grid.HoldFields
Set Grid.Recordset = m_r
Dim Soedinenie As String
Dim query As String
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
query = "Команда SQL"
Set cn = New ADODB.Connection
cn.Open (Soedinenie)
Set rs = cn.Execute(query)
rs.Close
Set rs = Nothing
Set cn = Nothing
rs.Close
Set rs = Nothing
Set cn = Nothing
sergey-911 писал(а):А для чего узнавать тип поля?
sergey-911 писал(а):Извини за назойливость. Не объяснишь, что значит
Grid.HoldFields
sergey-911 писал(а):И правильно, ибо DAO отжил свое. Я же писал что делал для старой программы.
sergey-911 писал(а):Нужно ли это делаьть, или это только отнимает ресурсы системы - т.е. не лучше один раз открыть соединение, а при выходе из программы - закрыть?
sergey-911 писал(а): И еще, при выходе из системы, соединение автоматически не разрывается?
sergey-911 писал(а):Каким гридом ты сейчас пользуешься?
sergey-911 писал(а):Что значит, куда денется? Я имею ввиду, если в программе изначально установить соединение, а закрывать, при выходе из нее. В случае ошибки в программе, соединение не будет ли "висеть" (оставаться подключенным в памяти машины), ведь соединение "принудительно", не закрыли?
sergey-911 писал(а):Не скажешь, как ентот грид сделать полноценно работающим?
sp_columns MyTadle
CREATE PROCEDURE [sp_TableColumn]
--Процедура вывда колонок таблиц, доступных данному пользователю
@Table [varchar] (100) = NULL -- Название таблицы
AS
IF @Table is NOT NULL
BEGIN -- Вывод всех колонок указанной таблицы, доступных данному пользователю
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE FROM information_schema.columns
WHERE TABLE_NAME IN (@Table) AND TABLE_NAME <> 'dtproperties'
ORDER BY TABLE_NAME
END
ELSE
BEGIN -- Вывод всех таблиц и колонок, доступных данному пользователю
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE FROM information_schema.columns
WHERE
TABLE_NAME IN (SELECT TABLE_NAME FROM information_schema.tables WHERE table_type in ('base table') AND TABLE_NAME <> 'dtproperties')
OR
TABLE_NAME IN (SELECT TABLE_NAME FROM information_schema.tables WHERE table_type in ('VIEW'))
AND TABLE_NAME LIKE 'vw%'
ORDER BY TABLE_NAME
END
CREATE PROCEDURE [sp_Column]
--Процедура вывда колонок таблиц, доступных данному пользователю
@Table [varchar] (100) = NULL -- Название таблицы
AS
IF @Table is NOT NULL
BEGIN -- Вывод всех колонок указанной таблицы, доступных данному пользователю
SELECT TABLE_NAME +'.' + COLUMN_NAME [Column] FROM information_schema.columns
WHERE TABLE_NAME IN (@Table) AND TABLE_NAME <> 'dtproperties'
ORDER BY TABLE_NAME
END
ELSE
BEGIN -- Вывод всех таблиц и колонок, доступных данному пользователю
SELECT TABLE_NAME + '.' + COLUMN_NAME AS [Column] FROM information_schema.columns
WHERE
TABLE_NAME IN (SELECT TABLE_NAME FROM information_schema.tables WHERE table_type in ('base table') AND TABLE_NAME <> 'dtproperties')
OR
TABLE_NAME IN (SELECT TABLE_NAME FROM information_schema.tables WHERE table_type in ('VIEW'))
AND TABLE_NAME LIKE 'vw%'
ORDER BY TABLE_NAME
END
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3