Heim Datenbank MySQL-Tutorial 在Windows上的MySQL UDF开发应用_MySQL

在Windows上的MySQL UDF开发应用_MySQL

Jun 01, 2016 pm 02:11 PM
char the 应用 开发


  曾以为Windows版本的MySQL存在不能使用UDF的BUG诸提交了一个bug报告。不过似乎发现是我搞错了,MySQL的技术支持人员给了非常完美的解答,同大家分享一下。下边是原文回复。
  
  用户你好。抱歉,这并不是一个bug。下面我粘贴一个以前为某个客户做的简例,假设你有了VC++,源码分发,并且有一个正常运行的MySQL服务器。
  
  我将创建一个UDF它将一个名字:
  
  注意:例子非常简陋,目的是让你了解该如何处理手头的UDF。
  
  - 打开 mysqld.dsw 工作区。
  
  - 添加新项目到这个工作区
  
  - Project name: my_udf // 项目名称:my_udf
  
  - 选择 Win32 Dynamic-Link Library // Win32动态连接库
  
  - 点击 OK
  
  - 选择 An Empty DLL project // 一个空DLL项目
  
  - 点击 Finish
  
  - 点击 OK
  
  - 添加新文件 my_udf.cpp 到项目中:
  
  #include
  
  #include
  
  #include
  
  extern "C" {
  
  char *my_name(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
  
  char *error);
  
  // 兼容C
  
  }
  
  char *my_name(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
  
  char *error)
  
  {
  
  char * me = "my name";
  
  return me;
  
  // 调用此UDF将返回 my name
  
  }
  
  - 按 Ctrl+N 来创建一个新文件。
  
  - 选择 text 类型
  
  - File name: my_udf.def file://文件名:my_udf.def
  
  - 按照下边的内容编辑文件。
  
  LIBRARY UDF_EXAMPLE
  
  DESCRIPTION 'Example Using UDF with VC++'
  
  VERSION 1.0
  
  EXPORTS
  
  my_name
  
  - 右击my_udf项目并选择Settings
  
  - 点 C/C++ 选项卡
  
  - 选择 General
  
  - 添加宏 HAVE_DLOPE 到预处理器定义
  
  - 选择 Preprocessor
  
  - 添加头文件路径: Additional Include directories
  
  例如: ../include
  
  - 按 F7 去编译成 DLL.
  
  - 复制 my_udf.dll 到环境变量path定义过的目录
  
  比如 \winnt\system32 。
  
  - 打开mysql客户端
  
  C:\mysql-udf\bin>mysql -uroot -p
  
  Enter password:
  
  Welcome to the MySQL monitor. Commands end with ; or \g.
  
  Your MySQL connection id is 2 to server version: 3.23.52-max-nt
  
  Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
  
  mysql> CREATE FUNCTION my_name RETURNS STRING SONAME "my_udf.dll";
  
  Query OK, 0 rows affected (0.08 sec)
  
  mysql> select my_name();
  
  mysql> drop function my_name;
  
  Query OK, 0 rows affected (0.00 sec)
  
  以下是MySQL技术人员的回信原文:
  
  Sorry this isn't a bug.
  
  Below I pasted a sample I did sometime ago for another user:
  
  Ok. Assuming you have VC++ and the source distribution and a server
  
  running,
  
  I will create a UDF that returns a name:
  
  Note: the sample is ugly, but the purpose here is to show you how
  
  to handle the UDF.
  
  - Open the mysqld.dsw workspace.
  
  - Add New project to the workspace
  
  - Project name: my_udf
  
  - Select Win32 Dynamic-Link Library
  
  - Click OK
  
  - Select An Empty DLL project
  
  - Click Finish
  
  - Click OK
  
  - Add a new file called my_udf.cpp to the project:
  
  #include
  
  #include
  
  #include
  
  extern "C" {
  
  char *my_name(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
  
  char *error);
  
  }
  
  char *my_name(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
  
  char *error)
  
  {
  
  char * me = "my name";
  
  return me;
  
  }
  
  - Type Ctrl+N for to create a new file.
  
  - Select text type
  
  - File name: my_udf.def
  
  - Edit the above file with the below contents:
  
  LIBRARY UDF_EXAMPLE
  
  DESCRIPTION 'Example Using UDF with VC++'
  
  VERSION 1.0
  
  EXPORTS
  
  my_name
  
  - Right Click the my_udf project and select Settings
  
  - Click the C/C++ tab
  
  - Select General in the Category Combo
  
  - Add the macro HAVE_DLOPEN to the PreProcessor definition
  
  - Select Preprocessor in the Category Combo
  
  - Add the include path to the text box: Additional Include directories
  
  e.g: ../include
  
  - Press F7 for to build the DLL.
  
  - Copy the my_udf.dll to the environment path directory:
  
  \winnt\system32 for example.
  
  - Start the mysql client and issue:
  
  C:\mysql-udf\bin>mysql -uroot -p
  
  Enter password:
  
  Welcome to the MySQL monitor. Commands end with ; or \g.
  
  Your MySQL connection id is 2 to server version: 3.23.52-max-nt
  
  Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
  
  mysql> CREATE FUNCTION my_name RETURNS STRING SONAME "my_udf.dll";
  
  Query OK, 0 rows affected (0.08 sec)
  
  mysql> select my_name();
  
  mysql> drop function my_name;
  
  Query OK, 0 rows affected (0.00 sec)
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vier empfohlene KI-gestützte Programmiertools Vier empfohlene KI-gestützte Programmiertools Apr 22, 2024 pm 05:34 PM

Dieses KI-gestützte Programmiertool hat in dieser Phase der schnellen KI-Entwicklung eine große Anzahl nützlicher KI-gestützter Programmiertools zu Tage gefördert. KI-gestützte Programmiertools können die Entwicklungseffizienz verbessern, die Codequalität verbessern und Fehlerraten reduzieren. Sie sind wichtige Helfer im modernen Softwareentwicklungsprozess. Heute wird Dayao Ihnen 4 KI-gestützte Programmiertools vorstellen (und alle unterstützen die C#-Sprache). https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot ist ein KI-Codierungsassistent, der Ihnen hilft, Code schneller und mit weniger Aufwand zu schreiben, sodass Sie sich mehr auf Problemlösung und Zusammenarbeit konzentrieren können. Git

So machen Sie das Löschen vom Startbildschirm im iPhone rückgängig So machen Sie das Löschen vom Startbildschirm im iPhone rückgängig Apr 17, 2024 pm 07:37 PM

Sie haben etwas Wichtiges von Ihrem Startbildschirm gelöscht und versuchen, es wiederherzustellen? Es gibt verschiedene Möglichkeiten, App-Symbole wieder auf dem Bildschirm anzuzeigen. Wir haben alle Methoden besprochen, die Sie anwenden können, um das App-Symbol wieder auf dem Startbildschirm anzuzeigen. So machen Sie das Entfernen vom Startbildschirm auf dem iPhone rückgängig. Wie bereits erwähnt, gibt es mehrere Möglichkeiten, diese Änderung auf dem iPhone wiederherzustellen. Methode 1 – App-Symbol in der App-Bibliothek ersetzen Sie können ein App-Symbol direkt aus der App-Bibliothek auf Ihrem Startbildschirm platzieren. Schritt 1 – Wischen Sie seitwärts, um alle Apps in der App-Bibliothek zu finden. Schritt 2 – Suchen Sie das App-Symbol, das Sie zuvor gelöscht haben. Schritt 3 – Ziehen Sie einfach das App-Symbol aus der Hauptbibliothek an die richtige Stelle auf dem Startbildschirm. Dies ist das Anwendungsdiagramm

Die Rolle und praktische Anwendung von Pfeilsymbolen in PHP Die Rolle und praktische Anwendung von Pfeilsymbolen in PHP Mar 22, 2024 am 11:30 AM

Die Rolle und praktische Anwendung von Pfeilsymbolen in PHP In PHP wird das Pfeilsymbol (->) normalerweise verwendet, um auf die Eigenschaften und Methoden von Objekten zuzugreifen. Objekte sind eines der Grundkonzepte der objektorientierten Programmierung (OOP) in PHP. In der tatsächlichen Entwicklung spielen Pfeilsymbole eine wichtige Rolle bei der Bedienung von Objekten. In diesem Artikel werden die Rolle und die praktische Anwendung von Pfeilsymbolen vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verständnis zu erleichtern. 1. Die Rolle des Pfeilsymbols für den Zugriff auf die Eigenschaften eines Objekts. Das Pfeilsymbol kann für den Zugriff auf die Eigenschaften eines Objekts verwendet werden. Wenn wir ein Paar instanziieren

Nach 2 Monaten kann der humanoide Roboter Walker S Kleidung falten Nach 2 Monaten kann der humanoide Roboter Walker S Kleidung falten Apr 03, 2024 am 08:01 AM

Herausgeber des Machine Power Report: Wu Xin Die heimische Version des humanoiden Roboters + eines großen Modellteams hat zum ersten Mal die Betriebsaufgabe komplexer flexibler Materialien wie das Falten von Kleidung abgeschlossen. Mit der Enthüllung von Figure01, das das multimodale große Modell von OpenAI integriert, haben die damit verbundenen Fortschritte inländischer Kollegen Aufmerksamkeit erregt. Erst gestern veröffentlichte UBTECH, Chinas „größter Bestand an humanoiden Robotern“, die erste Demo des humanoiden Roboters WalkerS, der tief in das große Modell von Baidu Wenxin integriert ist und einige interessante neue Funktionen aufweist. Jetzt sieht WalkerS, gesegnet mit Baidu Wenxins großen Modellfähigkeiten, so aus. Wie Figure01 bewegt sich WalkerS nicht umher, sondern steht hinter einem Schreibtisch, um eine Reihe von Aufgaben zu erledigen. Es kann menschlichen Befehlen folgen und Kleidung falten

Vom Anfänger bis zum Experten: Entdecken Sie verschiedene Anwendungsszenarien des Linux-Befehls tee Vom Anfänger bis zum Experten: Entdecken Sie verschiedene Anwendungsszenarien des Linux-Befehls tee Mar 20, 2024 am 10:00 AM

Der Linuxtee-Befehl ist ein sehr nützliches Befehlszeilentool, das Ausgaben in eine Datei schreiben oder an einen anderen Befehl senden kann, ohne die vorhandene Ausgabe zu beeinträchtigen. In diesem Artikel werden wir die verschiedenen Anwendungsszenarien des Linuxtee-Befehls eingehend untersuchen, vom Anfänger bis zum Experten. 1. Grundlegende Verwendung Werfen wir zunächst einen Blick auf die grundlegende Verwendung des Tee-Befehls. Die Syntax des Tee-Befehls lautet wie folgt: tee[OPTION]...[DATEI]...Dieser Befehl liest Daten aus der Standardeingabe und speichert sie dort

Welcher KI-Programmierer ist der beste? Entdecken Sie das Potenzial von Devin, Tongyi Lingma und SWE-Agent Welcher KI-Programmierer ist der beste? Entdecken Sie das Potenzial von Devin, Tongyi Lingma und SWE-Agent Apr 07, 2024 am 09:10 AM

Am 3. März 2022, weniger als einen Monat nach der Geburt von Devin, dem weltweit ersten KI-Programmierer, entwickelte das NLP-Team der Princeton University einen Open-Source-KI-Programmierer-SWE-Agenten. Es nutzt das GPT-4-Modell, um Probleme in GitHub-Repositorys automatisch zu lösen. Die Leistung des SWE-Agenten auf dem SWE-Bench-Testsatz ist ähnlich wie die von Devin, er benötigt durchschnittlich 93 Sekunden und löst 12,29 % der Probleme. Durch die Interaktion mit einem dedizierten Terminal kann der SWE-Agent Dateiinhalte öffnen und durchsuchen, die automatische Syntaxprüfung verwenden, bestimmte Zeilen bearbeiten sowie Tests schreiben und ausführen. (Hinweis: Der obige Inhalt stellt eine geringfügige Anpassung des Originalinhalts dar, die Schlüsselinformationen im Originaltext bleiben jedoch erhalten und überschreiten nicht die angegebene Wortbeschränkung.) SWE-A

Erfahren Sie, wie Sie mobile Anwendungen mit der Go-Sprache entwickeln Erfahren Sie, wie Sie mobile Anwendungen mit der Go-Sprache entwickeln Mar 28, 2024 pm 10:00 PM

Tutorial zur Entwicklung mobiler Anwendungen in der Go-Sprache Da der Markt für mobile Anwendungen weiterhin boomt, beginnen immer mehr Entwickler damit, sich mit der Verwendung der Go-Sprache für die Entwicklung mobiler Anwendungen zu befassen. Als einfache und effiziente Programmiersprache hat die Go-Sprache auch großes Potenzial für die Entwicklung mobiler Anwendungen gezeigt. In diesem Artikel wird detailliert beschrieben, wie die Go-Sprache zum Entwickeln mobiler Anwendungen verwendet wird, und es werden spezifische Codebeispiele angehängt, um den Lesern den schnellen Einstieg und die Entwicklung eigener mobiler Anwendungen zu erleichtern. 1. Vorbereitung Bevor wir beginnen, müssen wir die Entwicklungsumgebung und die Tools vorbereiten. Kopf

Erkundung der Front-End-Technologie der Go-Sprache: eine neue Vision für die Front-End-Entwicklung Erkundung der Front-End-Technologie der Go-Sprache: eine neue Vision für die Front-End-Entwicklung Mar 28, 2024 pm 01:06 PM

Als schnelle und effiziente Programmiersprache erfreut sich Go im Bereich der Backend-Entwicklung großer Beliebtheit. Allerdings assoziieren nur wenige Menschen die Go-Sprache mit der Front-End-Entwicklung. Tatsächlich kann die Verwendung der Go-Sprache für die Front-End-Entwicklung nicht nur die Effizienz verbessern, sondern Entwicklern auch neue Horizonte eröffnen. In diesem Artikel wird die Möglichkeit der Verwendung der Go-Sprache für die Front-End-Entwicklung untersucht und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verständnis dieses Bereichs zu erleichtern. In der traditionellen Frontend-Entwicklung werden häufig JavaScript, HTML und CSS zum Erstellen von Benutzeroberflächen verwendet

See all articles