2

I'm trying to create a MySQL database for my Altium company library. I've created a MySQL database with utf16 encoding that contains tables for each category of components. Here is an example table:

CREATE TABLE `Amplifiers - Audio` (`Comment` NVARCHAR(100), `ComponentLink1Description` NVARCHAR(100), `ComponentLink1URL` NVARCHAR(250), `ComponentLink2Description` NVARCHAR(100), `ComponentLink2URL` NVARCHAR(250), `ComponentLink3Description` NVARCHAR(100), `ComponentLink3URL` NVARCHAR(250), `ComponentLink4Description` NVARCHAR(100), `ComponentLink4URL` NVARCHAR(250), `ComponentLink5Description` NVARCHAR(100), `ComponentLink5URL` NVARCHAR(250), `ComponentLink6Description` NVARCHAR(100), `ComponentLink6URL` NVARCHAR(250), `Description` NVARCHAR(200), `Device Package` NVARCHAR(100), `Features` NVARCHAR(127), `Footprint Path` NVARCHAR(100), `Footprint Path 2` NVARCHAR(100), `Footprint Path 3` NVARCHAR(100), `Footprint Ref` NVARCHAR(100), `Footprint Ref 2` NVARCHAR(100), `Footprint Ref 3` NVARCHAR(100), `LastUpdated` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `Lifecycle Status` NVARCHAR(100), `Manufacturer` NVARCHAR(100), `Part Number` NVARCHAR(100), `Max Output Power x Channels @ Load` NVARCHAR(127), `Minimum Order` INT, `Mounting Type` NVARCHAR(127), `Operating Temperature` NVARCHAR(127), `Output Type` NVARCHAR(127), `Package / Case` NVARCHAR(127), `Packaging` NVARCHAR(100), `PartId` INT NOT NULL, `Part Status` NVARCHAR(127), `Price` NVARCHAR(100), `Series` NVARCHAR(100), `Supplier 1` NVARCHAR(100), `Supplier Part Number 1` NVARCHAR(150), `Supplier 2` NVARCHAR(100), `Supplier Part Number 2` NVARCHAR(150), `Supplier 3` NVARCHAR(100), `Supplier Part Number 3` NVARCHAR(150), `Supplier 4` NVARCHAR(100), `Supplier Part Number 4` NVARCHAR(150), `Supplier 5` NVARCHAR(100), `Supplier Part Number 5` NVARCHAR(150), `Supplier 6` NVARCHAR(100), `Supplier Part Number 6` NVARCHAR(150), `Supplier Device Package` NVARCHAR(127), `Library Path` NVARCHAR(100), `Library Ref` NVARCHAR(100), `Type` NVARCHAR(100), `Value` NVARCHAR(100), `Voltage - Supply` NVARCHAR(127));

I then created a .DbLib file for altium and connected to the database. Altium was able to correctly parse the columns and gave me this view in the Field Mappings:

enter image description here

I have not inserted anything into the database yet so when I click on Table Browser I expect nothing to show up. In reality Altium throws an error when trying to click on Table Browser saying:

enter image description here

This is weird as clearly from the above sql statement we can see this line:

`Library Ref` NVARCHAR(100)

Altium also reflects this in the Field Mappings and detects the Library Ref:

enter image description here

Any ideas on what I'm missing and if there is any documentation online that describes what must be present in the database? I can't find anything.

EXTRA:

Inside the .DBLib file I can see the Altium detected the LibraryRef field:

[FieldMap1052]
Options=FieldName=Voltage Regulators - Linear.Library Ref|TableNameOnly=Voltage Regulators - Linear|FieldNameOnly=Library Ref|FieldType=1|ParameterName=[Library Ref]|VisibleOnAdd=False|AddMode=0|RemoveMode=0|UpdateMode=0

1 Answers1

0

Figured it out! It turns out if you are using MySQL and have a space in the name of the Table then Altium bugs out and can't see the Library Ref column. This can be fixed by using MSSQL. Weird??

NOTE: This could be related to my version (19.0.15) but haven't found any bug reports of this.