Archive for the ‘между делом’ Category
Проблема с UNION

Если объединить данные из двух таблиц, при этом в первом запросе поле определено как Null As T_POLE. А во втором запросе поле T_POLE существует в таблице и содержит данные. То T_POLE в результирующем наборе не будет содержать данные. Чтобы данные появились необходимо определить поле, например, так " " As T_POLE.
Не работает:
SELECT Null As T_POLE FROM first_table UNION ALL SELECT T_POLE FROM second_table
Работает
SELECT T_POLE FROM second_table UNION ALL SELECT Null As T_POLE FROM first_table
До встречи!
(с) Скоков Сергей
Подписаться на: RSS или e-mail рассылку или добавить в ЖЖ друзья.
Метод MoveFirst
Я очень часто замечаю, что многие программисты (как опытные так и новички ) при работе c Recordset библиотеки DAO или ADO, перед началом работы с данными вызывают метод MoveFirst. Это похоже на параною.
Тогда код выглядит примерно, так:
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("tbl1", dbOpenDynaset)
If Not rst.BOF Then
rst.MoveFirst
End If
Do While Not rst.EOF
'-- ...
rst.MoveNext
Loop
rst.Close
Смысл этого действа мне не понятен. В документации четко написано:
When you open a Recordset, the first record is current and the BOF property is False. If the Recordset contains no records, the BOF property is True, and there is no current record.
Что вкратце означает, если Recordset содержит данные, то текущей записью будет первая запись. Смело избавляйтесь от бесмысленного ифа.
До встречи!
(с) Скоков Сергей
Подписаться на: RSS или e-mail рассылку или добавить в ЖЖ друзья.