выберите последнюю запись 700 в моей базе данных access и 10 первых слов из поля memo

#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 с этим кодом