Commit Graph

59 Commits

Author SHA1 Message Date
Ansgar Becker
844d9c3640 feat: reverse foreign keys on "Foreign keys" tab in table editor, including an option to toggle the new listing
Refs #1825
2026-02-28 15:47:50 +01:00
Ansgar Becker
14f5468af2 refactor: outsource queries from GetRowCount into TSqlProvider
This required to introduce a third version of TSqlProvider.GetSql which works with named parameters packed into a TStringMap
2026-02-16 20:45:23 +01:00
Ansgar Becker
277c0a969a refactor: outsource queries from GetCharsetTable into TSqlProvider 2026-02-16 15:28:02 +01:00
Ansgar Becker
a3374f3eb9 refactor: outsource queries from GetCollationTable into TSqlProvider 2026-02-16 13:45:19 +01:00
Ansgar Becker
4912dd8233 refactor: move mysql specific SQL snippets to its own TSqlProvider, don't use as default for all others 2026-02-15 19:41:14 +01:00
Ansgar Becker
f8f980572d refactor: retrieve query for disabling and enabling foreign key checks from TSqlProvider 2026-02-15 19:00:29 +01:00
Ansgar Becker
fecd011d86 refactor: outsource 3 large queries from GetTableColumns into TSqlProvider
Refs #1880
2026-02-15 18:41:37 +01:00
Ansgar Becker
c450f516b7 refactor: replace FSQLSpecifities with a TSqlProvider, and outsource many hardcoded SQL queries to the dbstructures.* units
Refs #667 and #1880
2026-02-15 15:04:22 +01:00
Ansgar Becker
5434ee572b fix: bad message with no library selected
Closes #1020
2025-10-16 17:21:03 +02:00
Ansgar Becker
3220d396bf Issue #2068: support MariaDB's new VECTOR data type in table designer, categorize as binary 2025-02-14 09:54:59 +01:00
Ansgar Becker
7588e6afe2 Issue #1426 and issue #1768: minor: do not try to set MARIADB_OPT_TLS_VERSION option with libmysql 2024-11-18 06:25:04 +01:00
Ansgar Becker
ce3d29a99c Issue #1964: support MariaDB's INET4 and INET6 data types 2024-06-14 13:59:40 +02:00
Ansgar Becker
d549080cbd Issue #1768:
* Dynamically set the used MYSQL_OPT_* constants for libmysql v8+, to fix the reported SEC_E_ALGORITHM_MISMATCH connection error on SSL-enabled sessions.
* add libmysql-8.4.0-64.dll to installer
* remove deprecated and no longer used mysql_ssl_set() function
2024-05-28 19:33:54 +02:00
Ansgar Becker
4ac4152e7d Support CITEXT columns and categorize as text type, so these show up in foreign values pulldown editor of data grid. Closes #1931 2024-04-22 20:30:34 +02:00
Ansgar Becker
0d9de512cd Remove unit scopes from project settings, prefer fully qualified unit names in uses clauses. Enhance readability and compiler performance. 2022-12-26 17:59:19 +01:00
Ansgar Becker
c4085bed4e Refactor: move structures for specific network types out of dbstructures, into their own dbstructures.xxx.pas, and include const.inc in project sources 2022-04-23 11:38:26 +02:00
Ansgar Becker
0f61ad64fe In a connection error, give the user a hint to better use the default library. A similar hint was yet only given on SSL error messages, but libmysql.dll seems to end with a misleading "access denied" error in some cases. Related to #722, #980 and https://stackoverflow.com/questions/71161296/unable-to-connect-to-mysl-container-via-heidisql-via-localhost 2022-02-19 14:50:44 +01:00
Ansgar Becker
8f36560cc0 Issue #1539: overtake some new CLIENT* constants from include\mysql_com.h, and activate CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA in MySQL/MariaDB mode 2022-02-13 20:54:07 +01:00
Ansgar Becker
33eb0032d9 Issue #1169: implement TInterbaseConnection.GetTableColumns and InterbaseDatatypes 2021-10-30 12:44:10 +02:00
Ansgar Becker
9baeb9f018 Outsource large list of MySQL functions into separate .ini files, one per server type. Todo: definitions for SQLite and Interbase. 2021-10-11 21:32:55 +02:00
Ansgar Becker
89f1f7f5fa Issue #1453: support UINT columns in SQLite mode 2021-10-06 18:59:53 +02:00
Ansgar Becker
a469d89227 Issue #1169: give items in TDBDatatypeIndex a different prefix (dt => dbdt), to fix a conflict with those from Delphi's database components 2021-06-26 17:44:50 +02:00
Ansgar Becker
6e053ee640 Issue #1321 : move jsonb data type to text category, to activate the text editor for such fields 2021-02-25 21:20:22 +01:00
Ansgar Becker
0c6b609cf2 Add support for JSONB column types in PostgreSQL. Closes #606 2020-12-19 08:59:27 +01:00
Ansgar Becker
1aa8605d21 Support regproc and regprocedure types on PostgreSQL, so these don't use SUBSTR() in data grid 2020-12-15 17:57:50 +01:00
Ansgar Becker
8201ac6169 Leave Datatype.MaxSize for CSV layout detection, and introduce Datatype.DefaultSize for deciding whether a column gets a length definition. Closes #1245 2020-12-03 08:00:59 +01:00
Ansgar Becker
2bc5926db5 Re-add CURRENT_TIMESTAMP function, removed accidentally in last update. See https://www.heidisql.com/forum.php?t=37278 2020-12-01 19:05:19 +01:00
Ansgar Becker
5df6149db4 Issue #477: Implement CSV layout detection, in a new dialog, callable through a "<New table>" item. Detection yet limited to integers, floats and text column types. 2020-11-29 14:25:29 +01:00
Ansgar Becker
c4dbdfe948 Enable loading SQLite extensions. Closes #1186 2020-10-12 21:03:22 +02:00
Ansgar Becker
5d1695c445 Extract contents for MySqlFunctions array out of MariaDB 10.5 help tables. Leave original function sorting by category, don't sort by their name. 2020-07-27 18:23:52 +02:00
Ansgar Becker
9d95fc010c Fix alias of PostgreSQL column type TIMESTAMPTZ with missing space. Closes #1071 2020-06-27 16:27:15 +02:00
Ansgar Becker
fb41077613 Stop showing a length for MySQL/MariaDB data types which don't support it. Even leave the length away for TEXT + BLOB types if it's the maximum (default) value. Closes #1023 2020-05-07 18:32:15 +02:00
Ansgar Becker
97fc069578 Set callback for SQLite's callback_needed event, and implement both required callback procedures. Fixes "No such collation sequence: xyz" when inserting or deleting rows in tables using some unknown collation. Closes #1000. 2020-04-25 22:05:28 +02:00
Ansgar Becker
f241e4b69e Override "main" database name with custom one. Closes #948 2020-03-26 12:20:32 +01:00
Ansgar Becker
5ee148bdbd Give CHAR data type a separate detection, besides VARCHAR, for SQLite. Closes #870 2020-01-29 21:24:23 +01:00
Ansgar Becker
3b84ccc696 Issue #12: SQLite allows any column type declaration, even custom types.
* support those declarations which are commonly used in other database systems, and for which Heidi has a fitting grid editor
* move UNIQUEIDENTIFIER from text group to binary group
* remove useless native type ids and empty descriptions
2020-01-19 07:26:00 +01:00
Ansgar Becker
c994e43e07 Issue #12: detect UNIQUEIDENTIFIER column type, and sort that into the text type group 2020-01-18 18:18:38 +01:00
Ansgar Becker
e6fd4e4d63 Add missing CHAR datatype to SQLite column detection. Closes #858 2020-01-18 08:19:33 +01:00
Ansgar Becker
d9e2123cb2 Issue #12: detect SQLite data type of non-table result columns, using sqlite3_column_type(). See https://stackoverflow.com/questions/59749418/sqlite-c-api-equivalent-to-typeofcol 2020-01-15 22:48:55 +01:00
Ansgar Becker
08fa8a0c3b Detect SQLite BOOL columns as TINYINT 2020-01-14 21:15:49 +01:00
Ansgar Becker
c9d3d3c38d Issue #12: Proper implementation of TSQLiteQuery.ColIsPrimaryKeyPart() 2020-01-01 19:12:10 +01:00
Ansgar Becker
cc8203043a Add two newer header constants for MySQL/SSL, yet unused by HeidiSQL 2020-01-01 11:59:37 +01:00
Ansgar Becker
5146026ba6 Issue #12: Detect more granular data types on SQLite, which we need for the table designer and other things 2020-01-01 11:56:43 +01:00
Ansgar Becker
616715987e Issue #12: Support query batch fired in one go, and get multiple results per query running. Using pzTail out parameter of sqlite_prepare_v3(), not sqllite_next_stmt(), which returns statements from previously fired queries. 2019-12-29 09:52:11 +01:00
Ansgar Becker
541d4e2e90 Issue #12: Clean up code, attempt to get multiple SQLite results per query working, move FStatementNum from TDBConnection to the only caller TMySQLConnection 2019-12-28 09:29:29 +01:00
Ansgar Becker
efb4459288 Issue #12: Implement TSQLiteQuery.TableName, and
* free Psqlite3_stmt later, in TSQLiteGridRows.Destroy, not in TSQLiteConnection.Query directly after execution
* move code from TAdoDBQuery.TableName to TDBQuery.TableName, as this is generic SQL parsing which works for all layers (though not so reliable)
2019-12-27 08:30:25 +01:00
Ansgar Becker
ed89b54b28 Issue #12:
* define and use SQLite column datatypes, at least the few groups (int, text, real, blob, date)
* TSQLiteConnection.GetThreadId now returns the application process id, as there is no connection pid in SQLite
2019-12-25 12:34:36 +01:00
Ansgar Becker
e67ab11279 Introduce experimental implementation of SQLite support, alias "Jingle Bells v2", for issue #12 2019-12-24 14:32:19 +01:00
Ansgar Becker
94b398beb2 Add CURRENT_TIMESTAMP to function list, especially for the dropdown in the default editor. See https://github.com/HeidiSQL/HeidiSQL/issues/74#issuecomment-559321533 2019-11-28 06:38:01 +01:00
Ansgar Becker
2b3b11c9c3 Update MySQL/MariaDB function list and their help texts 2019-11-03 13:45:24 +01:00