2015-04-01 1 views
1

У меня есть таблица доступа 2010 с полем гиперссылки, где я храню адрес электронной почты клиентов. Прежде чем добавить новый E-Mail, я хочу проверить, есть ли там адрес электронной почты. Я стараюсь использовать как локализовать заявление (DELPHI 2009; ADOConnection, TADODataSet):Как найти поле гиперссылки

if table.locate('ML_Link',NewAdress,[locaseinsensitive]) then

Это утверждение выдает сообщение об ошибке с чем-то вроде, что последовательность не допускается.

Как найти поля гиперссылки?

+0

Если вы добавите «уникальное» ограничение в это поле, вы можете просто вставить без проверки. Вы получите исключение, если ограничение нарушено (т. Е. Когда адрес уже присутствует). Поймайте исключение и обработайте, как хотите. –

ответ

1

Я подозреваю, что символ @ считается особым символом. Я предлагаю вам попробовать расколоть адрес на две части, адрес электронной почты и домена, например, а затем искать оба поля, как

if table.locate('email;domain', VarArrayOf([NewEmail, NewDomain]), [locaseinsensitive]); 

Вы также можете добавить варианты для вашего пункта изез, в зависимости от вашей версии Дельфи ..

+0

Я думаю, что вы ошибаетесь, потому что он также не работает с URL-адресами, а не только с E-mai llink. Я считаю, что причиной является поле гиперссылки. –

+0

Подробнее об этом сообщении об ошибке. Кажется, это всего лишь внутреннее исключение delphi. Оригинальный (немецкий) текст выглядит следующим образом: Im Projekt VP 2 2. exe ist eine Exception der Klasse EOIeException mit der Meldung 'Die reihenfolge kann nicht angewendet werden' aufgetreten. " Перевод:" последовательность/порядок не может применяется « –

+0

Я думаю, что URL-адреса могут содержать и специальные символы. Взгляните на эту статью .. http://support.microsoft.com/en-us/kb/826763. Из этой статьи говорится, что периоды являются особыми символ в доступе. –