#c# #sql #ms-access
#c# #sql #ms-access
Вопрос:
код из последних 700 выглядит следующим образом
private string strsqlcommandBeta =
"select top 700 * from objectaer "
" order by objectdate desc";
и код для первых 10 слов поля memo с именем patronvalue17 должен быть таким.
private string strsqlcommandBeta = "select LEFT(patronvalue17, INSTR(10, patronvalue17, " ") - 1) from objectaer " " order by objectdate desc" " ";
Я не знаю, как собрать это вместе
этот код выдает следующую ошибку
select top 700 LEFT(patronvalue17, INSTR(10, patronvalue17, ' ') - 1) * from objectaer
Синтаксическая ошибка (отсутствует оператор) в выражении запроса ‘LEFT(patronvalue17, INSTR(10, patronvalue17, ‘ ‘) — 1) *’.
Ответ №1:
Скотт обнаружил синтаксическую ошибку. Причина, по которой вы не получаете 10 слов, заключается в том, что INSTR работает не так. Его подпись
INSTR(Start_Posn, String_Being_Searched, Sought_String_Item, Compare_Type)
это означает, что вы просматриваете первый пробел после символа 10, а затем получаете все слева от него. Обычно это означает, что вы получаете 2-3 слова, а не 10.
Если вы выводите весь текст memo, это звучит для меня очень странно, но указывает на то, что InStr не соответствует вашему символу пробела и возвращает индекс последнего символа. Я бы попробовал указать comparetype.
http://www.techonthenet.com/access/functions/string/instr.php
Ответ №2:
Похоже, что между двумя выбранными полями не хватает символа ‘,’. -1), *
Комментарии:
1. ошибка только что прекратилась, но по какой-то причине я получаю все слова из поля memo, а не только первые 10 с этим кодом