Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.03.31;
Скачать: [xml.tar.bz2];

Вниз

поиск в поле MEMO через SQL   Найти похожие ветки 

 
ankazh ©   (2012-09-24 01:03) [0]

Имеется БД в Акссесе. Поле RusWord табл Slovar имеет тип поле MEMO. Имеется Эдит, в котором ввожу нужное слова для поиска. Для текстовых полей поиск выполняется, а вот для поля MEMO нет. Здается, что для него нужно по особенному передавать переменную. Подскажите кто знает.

procedure TfmMain.Edit1Change(Sender: TObject);
var h1, h2:string ;
begin
h1:="%"+fmMain.Edit1.Text+"%";
h2:=QuotedStr(h1);

with fmDM.ADOQuerySlovar do
 begin
   DisableControls;
   Close;
   SQL.Clear;
       if RadioButton1.Checked then SQL.Add("SELECT * from Slovar where Transkript like"+h2) else
       if RadioButton2.Checked then SQL.Add("SELECT * from Slovar where RusWord like"+h2)
   Open;
   EnableControls;
 end;


 
MonoLife ©   (2012-09-24 06:59) [1]

приведенный код не скомпилируется.


 
sniknik ©   (2012-09-24 07:58) [2]

> Здается, что для него нужно по особенному передавать переменную.
операция like в access не отличается для текстовых полей и мемо, переменные задаются абсолютно одинаково.
причина в другом.


 
ankazh ©   (2012-09-24 09:07) [3]


> MonoLife ©   (24.09.12 06:59) [1]
> приведенный код не скомпилируется.
>
>

компилируется, и даже выдает поиск, только по текстовому полю, а по Мемо не выдает


 
ankazh ©   (2012-09-24 09:19) [4]

интересный факт, по этому полю слова не находит, а вот скобочки находятся, странно.... Что может быть?


 
ankazh ©   (2012-09-24 09:27) [5]

и еще, когда вписываю текст на английском в Этом поле, то поиск происходит, на русском языке не работает. И находит только если слово целиком вписала, хотя должно искать все слова содержащие вводимые слоги.


 
MonoLife ©   (2012-09-24 09:31) [6]

я сказал приведенный здесь код, а не то, что у вас там компилируется..

>  if RadioButton2.Checked then SQL.Add("SELECT * from Slovar
> where RusWord like"+h2) ;
>    Open;

Да и пробел не помешает ... like "+...
И использовать рекомендуется TADODataSet
см. [2] ищите причину


 
sniknik ©   (2012-09-24 11:40) [7]

раз "проблема" только с русским, то причина в/"связана с" юникодом скорее всего.


 
sniknik ©   (2012-09-24 11:47) [8]

как пример различия (текст работает, мемо нет), кусочек хелпа из акксесс

Использование атрибута WITH COMPRESSION допускается только для типов данных CHARACTER и MEMO (он же TEXT) и их синонимов.

Атрибут WITH COMPRESSION был добавлен к столбцам CHARACTER вследствие перехода к формату представления знаков Юникод. Каждый знак в формате Юникод всегда кодируется с помощью двух байтов. Для существующих баз данных Microsoft® Jet, содержащих в основном символьные данные, это может означать увеличение размера файла базы данных примерно в два раза после преобразования в формат Microsoft Jet версии 4.0. Тем не менее, для многих наборов символов, ранее обозначавшихся как однобайтовые наборы символов (SBCS), представление в формате Unicode (SBCS) может быть без труда сжато до одного байта. Если столбец CHARACTER был определен с этим атрибутом, то при сохранении в нем данных осуществляется их автоматическое сжатие, а при извлечении данных - обратная операция.

Столбцы MEMO также могут быть определены для хранения данных в сжатом формате. Однако при этом действует одно ограничение. Сжатию подвергаются только те столбцы типа MEMO, которые в сжатом виде имеют размер не более 4096 байтов. Все остальные столбцы MEMO не сжимаются. Это означает, что для данной таблицы и данного столбца MEMO этой таблицы одни данные могут быть сжаты, а другие - нет.


ошибка конечно не здесь, а в программе, это как пример того, что написанное без учета/криво/не стандартно, может являться глюком несмотря на то, что "ну вот там то работает!".


 
ankazh ©   (2012-09-27 14:12) [9]

Нашла проблему, вот только не знаю почему так происходит. dbRichEdit подключено к одному из полей таблицы. Когда вписываю туда слово, то dbGrid отображает его нормально, а вот в Аксесе заносится абра-кадабра!!! Что не так делаю?

{\rtf1\fbidis\ansi\ansicpg1251\deff0\deflang1049{\fonttbl{\f0\fnil\fcharset177 Adobe Hebrew;}{\f1\fnil\fcharset204 Tahoma;}}
\viewkind4\uc1\pard\ltrpar\lang1037\f0\rtlch\fs44\"f8\"e0\"e9\"f8\"e0\"e9\"e9\"f 8\"e0\"e9\"f8\"e0 - \lang1049\f1\ltrch\fs22\"ef\"f3\"f3\"e5\"e5\"ea\"ef\"ea\"f3\"ef\"f3\"ea\f0\rtlch \fs44\par


 
ankazh ©   (2012-09-27 14:36) [10]

ой, простите не dbGrid отображает нормально слово, а  dbRichEdit, а вот в dbGrid эта запись как суржик.


 
Anatoly Podgoretsky ©   (2012-09-27 14:39) [11]

> ankazh  (27.09.2012 14:12:09)  [9]

В Акцессе это поле в Юникоде.


 
ankazh ©   (2012-09-27 14:50) [12]

...и что сделать, меняла галочки с "Сжатие Юникод" - ситуация не поменялась


 
Плохиш ©   (2012-09-27 14:57) [13]


> dbRichEdit подключено к одному из полей таблицы. Когда вписываю
> туда слово, то dbGrid отображает его нормально, а вот в
> Аксесе заносится абра-кадабра!!!

Вы бы хоть почитали что-нибуть, про форматы данных, к примеру.
Обезьянки-кодеры какие-то.


 
sniknik ©   (2012-09-27 14:57) [14]

> а вот в Аксесе заносится абра-кадабра!!!
внутреннее представление текста в rtf... записываешь через dbRichEdit читай им же, он разберет. или поменяй на мемо.


 
ankazh ©   (2012-09-27 15:00) [15]


> Плохиш ©

не понимаю о чем Вы...


 
ankazh ©   (2012-09-27 15:02) [16]


> sniknik


> внутреннее представление текста в rtf
это типа записывать в файл rtf ?


 
sniknik ©   (2012-09-27 15:15) [17]

> это типа записывать в файл rtf ?
это типа записывается в формате rtf, туда, где ты его читал (приведенная абракадабра). что с ним дальше будет, и писать ли это в файл... мне честно говоря пофигу, хотя не возражаю, это дело программиста который эти данные читает/пишет, и если ему нужно в файл то пусть пишет.


 
sniknik ©   (2012-09-27 15:19) [18]

вообще, не тупи, задавай вопросы правильно... основной вопрос - "нужен ли тебе rtf?" и если нет то нафига ты спрашиваешь как тебе с ним обращаться. если да... ну блин прочитай что нибудь, хотя бы о том что это, прежде, и вместо того чтобы нести ахинею.


 
ankazh ©   (2012-09-27 15:44) [19]


> sniknik


rtf - формат хранения размеченных текстовых документов. Почему ж я ахинею несу?


 
ankazh ©   (2012-09-27 15:47) [20]

если ты имеешь ввиду, что нужно поставить в Аксесе, ртф формат, то скажу что я не знаю где его ставить в аксесе 2003. Поэтому и спрашиваю.


 
Плохиш ©   (2012-09-27 16:45) [21]

Kinder, Küche, Kirche.


 
brother ©   (2012-09-27 16:58) [22]

> rtf - формат хранения размеченных текстовых документов.

в твоем случае разметка нужна?


 
sniknik ©   (2012-09-27 17:02) [23]

> rtf - формат хранения размеченных текстовых документов.
ну и? откуда следует необходимость записи в файл? или где я про это написал?

> Почему ж я ахинею несу?
потому, что про ахинею понял и среагировал, а все более менее значимое проигнорировал, либо придумал ему "свой смысл" ([20]).

> если ты имеешь ввиду
ничего из того, что бы думаешь я имею ввиду, я не имею ввиду. только то, что написал.

> Поэтому и спрашиваю.
а зачем спрашиваешь? почему не отвечаешь (тебя тоже кое о чем просили)/не изучаешь непонятное (разве нет?)/не нанимаешь уже программиста?.
какой смысл твоих вопросов? (ответы то все одно "мимо проходят")


 
ankazh ©   (2012-09-27 18:06) [24]

в общем сделала через RichEdit и наступило мне счастье, но я так и не поняла почему DBRichEdit не заносил корректно текст в Аксесе в "поле MEMO".


 
sniknik ©   (2012-09-27 22:39) [25]

> не заносил корректно текст
наоборот, он заносил КОРРЕКТНО, в том формате для которого предназначен и с которым работает.
не корректна твоя интерпретация, и возможно выбор компонент, в зависимости от ответа, которого от тебя ждали.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2013.03.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.005 c
15-1353754852
dummy_user
2012-11-24 15:00
2013.03.31
Посоветуйте электронную читалку.


4-1264157517
Barloggg
2010-01-22 13:51
2013.03.31
Иконка в трее длинная. Это реально?


2-1348434236
ankazh
2012-09-24 01:03
2013.03.31
поиск в поле MEMO через SQL


15-1354977257
dummy_user
2012-12-08 18:34
2013.03.31
Выбор из 2-х реализаций абстракции.


15-1354444189
DVM
2012-12-02 14:29
2013.03.31
Анкеты опять слетели?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский