0

フィルターに基づいてメールを自動的に分類しています。フィルター条件は SQL テーブルにあります。これが完全に機能することを知るまでは、送信者のメールアドレスが sql-table とまったく同じである場合に限ります。

一部のメール送信者は、すべてのメールで異なるメール アドレスを使用しますが、メール アドレスの一部は常に同じ ("@abc.com") です。

したがって、私は "@abc.com" を基準として SQL テーブルに入れるだけで、Access からこの SQL ステートメントは魅力的に機能します。

SELECT MA_Index, beding_body, beding_subj, aktion, FROM Mail_Automatik _ 
where (empfaenger = 'name_recipient' AND 'noreply-4689756@abc.com' like '*'&absender&'*');

しかし、私のコードはSQLサーバーと直接通信しており、そこではその部分を受け入れません:

 like '*'&absender&'*'

今私も試しました

LIKE '*' + absender + '*'

errof はもう見つかりませんが、結果もありません (あるべき場所)。

何か案は?

ありがとう!

4

1 に答える 1

2

+T-Sql 文字列連結に使用する必要があり、ワイルドカード文字として「%」を使用して任意に一致させる必要があります。

これを試してください(インラインSQLを渡している場合):

like '%' + absender + '%'

変数を直接 SQL Server に渡すよりも、パラメーター化されたクエリを使用して SQL インジェクション攻撃を回避したほうがよいでしょう。特に、これらの変数がユーザーが入力した値である場合。

パラメータ化されたクエリの場合:

"Select ... Where empfaenger = @name_recipient AND @email like '%' + absender + '%'"

@name_recipient次に、これらのパラメーター (および@email) をコマンド オブジェクトに追加します。

于 2013-09-20T09:05:55.110 に答える