C# Własne funkcje w Accesie

0

Witam.
Chciałbym pobrać dane z bazy dane za pomocą polecenia:
SELECT * FROM TABLELA1 WHERE StrToHex(ARG1)=StrToHex(ARG2)
Dane chciałbym zapisać do obiektu DataSet.
StrToHex() to moja własna funkcja napisana w Accesie, znajduje się w module M1
W samym Accesie ta kwerenda działa. Pokazuje mi poprawne dane. Jednak jeśli chcę wybrać sobie dane w c# za pomocą OleDbCommand to aplikacja się sypie i wyświetla się: Nie zdefiniowana funkcja 'StrToHex' w wyrażeniu.

0

skoro StrToHex(ARG1) ma być równe StrToHex(ARG2) to chyba możemy założyć, że ARG1 będzie równe ARG2?

0
Azarien napisał(a)

skoro StrToHex(ARG1) ma być równe StrToHex(ARG2) to chyba możemy założyć, że ARG1 będzie równe ARG2?

Właśnie wg Accesa niekoniecznie. Przy porównaniu nie jest uwzględniana wielkość liter.
Przykładowa kwerenda: SELECT * FROM TABELA1 WHERE ARGUMENT1 = 'Xy'
Pokaże mi wiersze w, których ARGUMENT1 wynosi Xy, XY, xy
Chyba, że w samym Accesie są jakieś opcje porównywania. Albo wbudowane funkcje do porównywania tekstów.
Do tej pory radziłem sobie stosując StrToHex, ale kiedy chcę przejść z kwerend w Accesie na proste aplikacje w C# to przestaje to działać.
Udało mi się to obejść pobierając wszystko i operując na obiektach DataSet ale wolałbym od razu pobrać potrzebne dane.

1

I jak byś na początku napisał jaki jest cel, a nie tak od d... strony :)
http://support.microsoft.com/kb/244693

0
massther napisał(a)

I jak byś na początku napisał jaki jest cel, a nie tak od d... strony :)
http://support.microsoft.com/kb/244693

Dzięki.
Rozwiązuje to ten konkretny problem.
Tylko co z sytuacją kiedy własnej funkcji nie da się zastąpić niczym wbudowanym. Czy c# umożliwia przesłanie do Accesa w jakiś sposób zapytań z własnymi funkcjami.
Może da się określić funkcje w zapytaniu jako zewnętrzną , tak żeby c# nie musiał jej znać.

1

Nie. Bo ty nie korzystasz z Accessa, tylko z JET-SQL-a, a on o istnieniu VBA nic nie wie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1