-
Notifications
You must be signed in to change notification settings - Fork 133
Home
**Under Construction and Subject to Change
**
This wiki is the new face of the Connector/Arduino project. Here you will find (for those that abhor long technical documentation) how to get started quickly using the connector as well as several examples of using the connector with some of the more popular Arduino boards. Later, you can find more details about the connector and how it works.
For those of you new to this project, it is strongly recommended that you attempt the example sketches before attempting your complete project sketch. In fact, if you have problems, taking time to read through the troubleshooting section should provide you with answers to the most common problems. Pay particular attention to the limitations section.
Finally, please be sure to read all of the Wiki before opening a new issue for the connector. While the project page is monitored, it is not monitored daily so issues can go some time before being addressed. Plus, at this point, most of the common problems have already been solved. With that, enjoy!
Microcontrollers by their nature have limited memory and limited processing power. Despite that, you can achieve quite a lot with the Arduino platform. However, there are real limits of what can be done within the limited memory and processing power of the Arduino platform wit respect to memory intensive or processor intensive applications such as network clients.
Thus, it may come as no surprise that the Connector/Arduino library has a number of limitations that place bounds on what is possible with such limited hardware. The following lists the major limitations of the library for you to consider when building you own MySQL client sketches. While some of these may be mitigated by using a "bigger" Arduino, you should consider these the upper bounds for what is possible on the more popular Arduino boards.
- Query strings (the SQL statements) must fit into memory. The connector uses an internal buffer for building data packets to send to the server. However, the library supports the use of PROGMEM strings.
- Similarly, the combined length of a row returned from the server (data size in bytes) must fit into memory. Attempting to read a row from a table with 250 columns of integers isn't going to work. Keep your results sets as narrow (fewest columns) as possible and use a WHERE clause to limit the number of rows returned.
- Result sets from SELECT (for example) queries must be read starting with fetching the columns then the complete rows one row at a time and one field at a time. Failure to do so will result in mysterious packet errors (because you didn't read all of the data).
- Server error responses are processed immediately if and only if the #debug directive is defined. If so, the connector prints the error code and message to the serial monitor otherwise, the errors may be suppressed.
- The connector is written to support the current and recent releases of MySQL from Oracle Corporation. While there are variants maintained by other vendors, they may have some modifications that introduce subtle incompatibilities. If you encounter strange errors or issues using the connector with your MySQL server, ensure you are using the server binaries distributed by Oracle.