powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как определить наличие в таблице SQL записи с определёнными полями
15 сообщений из 15, страница 1 из 1
Как определить наличие в таблице SQL записи с определёнными полями
    #36891721
swkx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Клиент-сервер VFP-SQL
Мне нужно выяснить, есть ли в таблице 'ТаблицаSQL' запись (записи) с такими значениями полей:
Поле1=123, Поле2='ABC'

Сами данные не нужны, нужен только ответ "Да/Нет".

SELECT Поле1, Поле2 FROM ТаблицаSQL WHERE Поле1=123 AND Поле2='ABC' - единственный способ ?
Какой метод самый быстрый ?
Есть ли на SQL аналог фоксовсих SEEK и LOCATE ?
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36891736
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Select * From ТаблицаSQL Where Поле1= 123  AND Поле2='ABC'
if _Tally> 0  then ...
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36891737
swkxКлиент-сервер VFP-SQL
Мне нужно выяснить, есть ли в таблице 'ТаблицаSQL' запись (записи) с такими значениями полей:
Поле1=123, Поле2='ABC'

Сами данные не нужны, нужен только ответ "Да/Нет".

SELECT Поле1, Поле2 FROM ТаблицаSQL WHERE Поле1=123 AND Поле2='ABC' - единственный способ ?Можно еще сократить список полей раз уж они не нужны и сделать соответствующий индекс.
Какой метод самый быстрый ?Он единственный.
Есть ли на SQL аналог фоксовсих SEEK и LOCATE ?Нет. И понятия "номер записи" тоже нет.
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36891743
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо нам стороне сервера ХП делает запрос по факту, типа:
Select Top 1 From ТаблицаSQL Where Поле1=123, Поле2='ABC' into...
Затем FPV просто смотрит временную таблицу/представление на предмет количества записей.
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36891846
swkx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А этот запрос выполняется дольше?:
SQL COUNT(*) FROM ТаблицаSQL WHERE Поле1=123 AND Поле2='ABC'
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36891944
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
swkxКлиент-сервер VFP-SQL
Мне нужно выяснить, есть ли в таблице 'ТаблицаSQL' запись (записи) с такими значениями полей:
Поле1=123, Поле2='ABC'

Сами данные не нужны, нужен только ответ "Да/Нет".
SELECT Поле1, Поле2 FROM ТаблицаSQL WHERE Поле1=123 AND Поле2='ABC' - единственный способ ?
Какой метод самый быстрый ?
Пошлите на сервер вот такой пакет:
Код: plaintext
1.
2.
3.
4.
IF EXISTS(SELECT * FROM ТаблицаSQL WHERE Поле1= 123  AND Поле2='ABC')
  SELECT  1  AS RecExist
ELSE
  SELECT  0  AS RecExist

В среднем, EXISTS работает быстрее, чем COUNT
swkx
Есть ли на SQL аналог фоксовсих SEEK и LOCATE ?
Нет. понятия "текущей записи" в MS SQL отсутствует.
С уважением, Алексей
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36891959
swkxА этот запрос выполняется дольше?:
SQL COUNT(*) FROM ТаблицаSQL WHERE Поле1=123 AND Поле2='ABC'Дольше чего? Поймите, нет абсолютной оптимизации и нет команд всегда работающих быстрее других. Иначе бы только эти быстрые команды и существовали бы. Можно говорить о скорости работы конкретного запроса на конкретных данных на конкретной машине. Вы же пока говорите о сферическом запросе в вакууме. Еще раз повторю - в значительной степени скорость исполнения запроса зависит от наличия правильных индексов. Правильность индексов, кстати, тоже понятие относительное. Нет просто правильных индексов, есть правильные для конкретных запросов на конкретных данных.
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36893185
swkx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, прояснили.

Aleksey-K,

отдельная благодарность за наводку))
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36898713
swkx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как в этой конструкции

SELECT * FROM ТаблицаSQL WHERE Поле1=Значение1

значения Поле1 и Значение1 взять из переменных ?
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36898730
swkxПодскажите, как в этой конструкции

SELECT * FROM ТаблицаSQL WHERE Поле1=Значение1

значения Поле1 и Значение1 взять из переменных ?Вместо Значение1 просто подставить переменную. А во с именем поля так нельзя. Только генерация строки с запросом и ее последующее выполнение. То есть динамический sql, что не есть хорошо.
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36898739
swkx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сработала вот такая конструкция

paramID = 'firmaid'
myID = 2
cmd = 'SELECT * FROM TableSQL WHERE ' +paramID+ ' = '+STR(myID)
= SQLEXEC(lnConn, cmd, 'tmpcursor')

Она имеет право на жизнь?
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36898750
swkxСработала вот такая конструкция

paramID = 'firmaid'
myID = 2
cmd = 'SELECT * FROM TableSQL WHERE ' +paramID+ ' = '+STR(myID)
= SQLEXEC(lnConn, cmd, 'tmpcursor')

Она имеет право на жизнь?А, так генерация запроса таки в фоксе, а не на сервере? Имеет.
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36898874
swkx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ура
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36899321
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
swkxПодскажите, как в этой конструкции

SELECT * FROM ТаблицаSQL WHERE Поле1=Значение1

значения Поле1 и Значение1 взять из переменных ?
Мне проще так:
Код: plaintext
1.
2.
3.
LOCAL m.lcCommand
TEXT TO lcCommand TEXTMERGE NOSHOW PRETEXT  15 
       SELECT * FROM TableSQL WHERE <<paramID>> = <<myID>>
ENDTEXT
С уважением, Алексей
...
Рейтинг: 0 / 0
Как определить наличие в таблице SQL записи с определёнными полями
    #36899779
swkx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksey-K.

так ещё симпатичнее))
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как определить наличие в таблице SQL записи с определёнными полями
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]