Recent

Author Topic: Who avalible TvisualPlanit with mysql works  (Read 356 times)

eldonfsr

  • Hero Member
  • *****
  • Posts: 550
Who avalible TvisualPlanit with mysql works
« on: May 10, 2025, 05:59:00 pm »
Hello i testing visualplanit with mysql but i don't get work some body get works....

eldonfsr

  • Hero Member
  • *****
  • Posts: 550
Re: Who avalible TvisualPlanit with mysql works
« Reply #1 on: May 14, 2025, 02:27:07 am »
After working some days with this I got works with mysql

here my changes....
VpZeosDs.pas change this procedure

 
Code: Pascal  [Select][+][-]
  1.  
  2. procedure TVpZeosDatastore.CreateTable(const ATableName: String;
  3.   CreateIndex: Boolean = true);
  4. var
  5.   CREATE_TABLE: String;
  6. begin
  7.   if (Lowercase(FConnection.Protocol) = 'firebird') then
  8.     CREATE_TABLE := 'RECREATE TABLE '  // Not clear if this is correct for firebird v2.x, it is for fb v3
  9.   else
  10.     CREATE_TABLE := 'CREATE TABLE ';
  11.  
  12.   if ATableName = ContactsTableName then begin
  13.     if (Lowercase(FConnection.Protocol) <> 'mysql') then begin
  14.     FConnection.ExecuteDirect(
  15.       CREATE_TABLE + 'Contacts ('+
  16.         'RecordID ' + FIDFieldTypeNameInSQL + ', '+
  17.         'ResourceID INTEGER, '+
  18.         'FirstName VARCHAR(50), '+
  19.         'LastName VARCHAR(50), '+
  20.         'Title VARCHAR(20) ,'+
  21.         'Category INTEGER, '+
  22.         'Birthdate DATE, '+
  23.         'Anniversary DATE, '+
  24.         'Company VARCHAR(50), '+
  25.         'Department VARCHAR(50), '+
  26.         'Job_Position VARCHAR(30), '+
  27.         'AddressType1 INTEGER, '+
  28.         'Address1 VARCHAR(100), '+
  29.         'City1 VARCHAR(50), '+
  30.         'State1 VARCHAR(25), '+
  31.         'Zip1 VARCHAR(10), '+
  32.         'Country1 VARCHAR(25), '+
  33.         'AddressType2 INTEGER, '+
  34.         'Address2 VARCHAR(100), '+
  35.         'City2 VARCHAR(50), '+
  36.         'State2 VARCHAR(25), '+
  37.         'Zip2 VARCHAR(10), '+
  38.         'Country2 VARCHAR(25), '+
  39.         'Notes VARCHAR(1024), '+
  40.         'EMail1 VARCHAR(100), '+
  41.         'EMail2 VARCHAR(100), '+
  42.         'EMail3 VARCHAR(100), '+
  43.         'EMailType1 INTEGER, '+
  44.         'EMailType2 INTEGER, '+
  45.         'EMailType3 INTEGER, '+
  46.         'Phone1 VARCHAR(25), '+
  47.         'Phone2 VARCHAR(25), '+
  48.         'Phone3 VARCHAR(25), '+
  49.         'Phone4 VARCHAR(25), '+
  50.         'Phone5 VARCHAR(25), '+
  51.         'PhoneType1 INTEGER, '+
  52.         'PhoneType2 INTEGER, '+
  53.         'PhoneType3 INTEGER, '+
  54.         'PhoneType4 INTEGER, '+
  55.         'PhoneType5 INTEGER, '+
  56.         'Website1 VARCHAR(100), '+
  57.         'Website2 VARCHAR(100), '+
  58.         'WebsiteType1 INTEGER, '+
  59.         'WebsiteType2 INTEGER, '+
  60.         'Custom1 VARCHAR(100), '+
  61.         'Custom2 VARCHAR(100),'+
  62.         'Custom3 VARCHAR(100), '+
  63.         'Custom4 VARCHAR(100), '+
  64.         'UserField0 VARCHAR(100), '+
  65.         'UserField1 VARCHAR(100), '+
  66.         'UserField2 VARCHAR(100), '+
  67.         'UserField3 VARCHAR(100), '+
  68.         'UserField4 VARCHAR(100), '+
  69.         'UserField5 VARCHAR(100), '+
  70.         'UserField6 VARCHAR(100), '+
  71.         'UserField7 VARCHAR(100), '+
  72.         'UserField8 VARCHAR(100), '+
  73.         'UserField9 VARCHAR(100) )'
  74.     );
  75.     end else begin
  76.       FConnection.ExecuteDirect(
  77.         CREATE_TABLE + 'Contacts ('+
  78.           'RecordID ' + FIDFieldTypeNameInSQL + ', '+
  79.           'ResourceID INT, '+
  80.           'FirstName VARCHAR(50), '+
  81.           'LastName VARCHAR(50), '+
  82.           'Title VARCHAR(20) ,'+
  83.           'Category INT, '+
  84.           'Birthdate DATE, '+
  85.           'Anniversary DATE, '+
  86.           'Company VARCHAR(50), '+
  87.           'Department VARCHAR(50), '+
  88.           'Job_Position VARCHAR(30), '+
  89.           'AddressType1 INT, '+
  90.           'Address1 VARCHAR(100), '+
  91.           'City1 VARCHAR(50), '+
  92.           'State1 VARCHAR(25), '+
  93.           'Zip1 VARCHAR(10), '+
  94.           'Country1 VARCHAR(25), '+
  95.           'AddressType2 INT, '+
  96.           'Address2 VARCHAR(100), '+
  97.           'City2 VARCHAR(50), '+
  98.           'State2 VARCHAR(25), '+
  99.           'Zip2 VARCHAR(10), '+
  100.           'Country2 VARCHAR(25), '+
  101.           'Notes VARCHAR(1024), '+
  102.           'EMail1 VARCHAR(100), '+
  103.           'EMail2 VARCHAR(100), '+
  104.           'EMail3 VARCHAR(100), '+
  105.           'EMailType1 INT, '+
  106.           'EMailType2 INT, '+
  107.           'EMailType3 INT, '+
  108.           'Phone1 VARCHAR(25), '+
  109.           'Phone2 VARCHAR(25), '+
  110.           'Phone3 VARCHAR(25), '+
  111.           'Phone4 VARCHAR(25), '+
  112.           'Phone5 VARCHAR(25), '+
  113.           'PhoneType1 INT, '+
  114.           'PhoneType2 INT, '+
  115.           'PhoneType3 INT, '+
  116.           'PhoneType4 INT, '+
  117.           'PhoneType5 INT, '+
  118.           'Website1 VARCHAR(100), '+
  119.           'Website2 VARCHAR(100), '+
  120.           'WebsiteType1 INT, '+
  121.           'WebsiteType2 INT, '+
  122.           'Custom1 VARCHAR(100), '+
  123.           'Custom2 VARCHAR(100),'+
  124.           'Custom3 VARCHAR(100), '+
  125.           'Custom4 VARCHAR(100), '+
  126.           'UserField0 VARCHAR(100), '+
  127.           'UserField1 VARCHAR(100), '+
  128.           'UserField2 VARCHAR(100), '+
  129.           'UserField3 VARCHAR(100), '+
  130.           'UserField4 VARCHAR(100), '+
  131.           'UserField5 VARCHAR(100), '+
  132.           'UserField6 VARCHAR(100), '+
  133.           'UserField7 VARCHAR(100), '+
  134.           'UserField8 VARCHAR(100), '+
  135.           'UserField9 VARCHAR(100) )'
  136.       );
  137.  
  138.     end;
  139.     if CreateIndex then begin
  140.       FConnection.ExecuteDirect(
  141.         'CREATE INDEX ContactsResourceID_idx ON Contacts(ResourceID)'
  142.       );
  143.       FConnection.ExecuteDirect(
  144.         'CREATE INDEX ContactsName_idx ON Contacts(LastName, FirstName)'
  145.       );
  146.       FConnection.ExecuteDirect(
  147.         'CREATE INDEX ContactsCompany_idx ON Contacts(Company)'
  148.       );
  149.     end;
  150.     if Lowercase(FConnection.Protocol) = 'firebird' then
  151.       CreateAutoInc_Firebird('Contacts', 'RecordID');
  152.   end else
  153.   if ATableName = EventsTableName then begin
  154.     if Lowercase(FConnection.Protocol) <> 'mysql' then begin
  155.  
  156.     FConnection.ExecuteDirect(
  157.       CREATE_TABLE + 'Events ('+
  158.         'RecordID ' + FIdFieldTypeNameInSQL + ', '+
  159.         'StartTime TIMESTAMP, '+
  160.         'EndTime TIMESTAMP, '+
  161.         'ResourceID INTEGER, '+
  162.         'Description VARCHAR(255), '+
  163.         'Location VARCHAR(255), '+
  164.         'Notes VARCHAR(1024), ' +
  165.         'Category INTEGER, '+
  166.         'AllDayEvent ' + FBoolFieldTypeNameInSQL + ', '+
  167.         'DingPath VARCHAR(255), '+
  168.         'AlarmSet ' + FBoolFieldTypeNameInSQL + ', '+
  169.         'AlarmAdvance INTEGER, '+
  170.         'AlarmAdvanceType INTEGER, '+
  171.         'SnoozeTime TIMESTAMP, '+
  172.         'RepeatCode INTEGER, '+
  173.         'RepeatRangeEnd TIMESTAMP, '+
  174.         'CustomInterval INTEGER, '+
  175.         'UserField0 VARCHAR(100), '+
  176.         'UserField1 VARCHAR(100), '+
  177.         'UserField2 VARCHAR(100), '+
  178.         'UserField3 VARCHAR(100), '+
  179.         'UserField4 VARCHAR(100), '+
  180.         'UserField5 VARCHAR(100), '+
  181.         'UserField6 VARCHAR(100), '+
  182.         'UserField7 VARCHAR(100), '+
  183.         'UserField8 VARCHAR(100), '+
  184.         'UserField9 VARCHAR(100) )'
  185.     );
  186.     end else begin
  187.       FConnection.ExecuteDirect(
  188.         CREATE_TABLE + 'Events ('+
  189.           'RecordID ' + FIdFieldTypeNameInSQL + ', '+
  190.           'StartTime TIMESTAMP, '+
  191.           'EndTime TIMESTAMP, '+
  192.           'ResourceID INT, '+
  193.           'Description VARCHAR(255), '+
  194.           'Location VARCHAR(255), '+
  195.           'Notes VARCHAR(1024), ' +
  196.           'Category INT, '+
  197.           'AllDayEvent ' + FBoolFieldTypeNameInSQL + ', '+
  198.           'DingPath VARCHAR(255), '+
  199.           'AlarmSet ' + FBoolFieldTypeNameInSQL + ', '+
  200.           'AlarmAdvance INT, '+
  201.           'AlarmAdvanceType INT, '+
  202.           'SnoozeTime TIMESTAMP, '+
  203.           'RepeatCode INT, '+
  204.           'RepeatRangeEnd TIMESTAMP, '+
  205.           'CustomInterval INT, '+
  206.           'UserField0 VARCHAR(100), '+
  207.           'UserField1 VARCHAR(100), '+
  208.           'UserField2 VARCHAR(100), '+
  209.           'UserField3 VARCHAR(100), '+
  210.           'UserField4 VARCHAR(100), '+
  211.           'UserField5 VARCHAR(100), '+
  212.           'UserField6 VARCHAR(100), '+
  213.           'UserField7 VARCHAR(100), '+
  214.           'UserField8 VARCHAR(100), '+
  215.           'UserField9 VARCHAR(100) )'
  216.       );
  217.  
  218.     end;
  219.     if CreateIndex then begin
  220.       FConnection.ExecuteDirect(
  221.         'CREATE INDEX EventsResourceID_idx ON Events(ResourceID)'
  222.       );
  223.       FConnection.ExecuteDirect(
  224.         'CREATE INDEX EventsStartTime_idx ON Events(StartTime)'
  225.       );
  226.       FConnection.ExecuteDirect(
  227.         'CREATE INDEX EventsEndTime_idx ON Events(EndTime)'
  228.       );
  229.     end;
  230.     if Lowercase(FConnection.Protocol) = 'firebird' then
  231.       CreateAutoInc_Firebird('Events', 'RecordID');
  232.   end else
  233.   if ATableName = ResourceTableName then begin
  234.     if Lowercase(FConnection.Protocol) <> 'mysql' then begin
  235.     FConnection.ExecuteDirect(
  236.       CREATE_TABLE + 'Resources ( '+
  237.          'ResourceID ' + FIdFieldTypeNameInSQL + ', '+
  238.          'Description VARCHAR(255), '+
  239.          'Notes VARCHAR(1024), '+
  240.          'ImageIndex INTEGER, '+
  241.          'ResourceActive ' + FBoolFieldTypeNameInSQL + ', '+
  242.          'UserField0 VARCHAR(100), '+
  243.          'UserField1 VARCHAR(100), '+
  244.          'UserField2 VARCHAR(100), '+
  245.          'UserField3 VARCHAR(100), '+
  246.          'UserField4 VARCHAR(100), '+
  247.          'UserField5 VARCHAR(100), '+
  248.          'UserField6 VARCHAR(100), '+
  249.          'UserField7 VARCHAR(100), '+
  250.          'UserField8 VARCHAR(100), '+
  251.          'UserField9 VARCHAR(100) )'
  252.     );
  253.     end else begin
  254.       FConnection.ExecuteDirect(
  255.         CREATE_TABLE + 'Resources ( '+
  256.            'ResourceID ' + FIdFieldTypeNameInSQL + ', '+
  257.            'Description VARCHAR(255), '+
  258.            'Notes VARCHAR(1024), '+
  259.            'ImageIndex INT, '+
  260.            'ResourceActive ' + FBoolFieldTypeNameInSQL + ', '+
  261.            'UserField0 VARCHAR(100), '+
  262.            'UserField1 VARCHAR(100), '+
  263.            'UserField2 VARCHAR(100), '+
  264.            'UserField3 VARCHAR(100), '+
  265.            'UserField4 VARCHAR(100), '+
  266.            'UserField5 VARCHAR(100), '+
  267.            'UserField6 VARCHAR(100), '+
  268.            'UserField7 VARCHAR(100), '+
  269.            'UserField8 VARCHAR(100), '+
  270.            'UserField9 VARCHAR(100) )'
  271.       );
  272.  
  273.     end;
  274.     if Lowercase(FConnection.Protocol) = 'firebird' then
  275.       CreateAutoInc_Firebird('Resources', 'ResourceID');
  276.   end else
  277.   if ATableName = TasksTableName then begin
  278.     if Lowercase(FConnection.Protocol) <> 'mysql' then begin
  279.     FConnection.ExecuteDirect(
  280.       CREATE_TABLE + 'Tasks ('+
  281.         'RecordID ' + FIdFieldTypeNameInSQL + ', '+
  282.         'ResourceID INTEGER, '+
  283.         'Complete ' + FBoolFieldTypeNameInSQL + ', '+
  284.         'Description VARCHAR(255), '+
  285.         'Details VARCHAR(1024), '+
  286.         'CreatedOn TIMESTAMP, '+
  287.         'Priority INTEGER, '+
  288.         'Category INTEGER, '+
  289.         'CompletedOn TIMESTAMP, '+
  290.         'DueDate TIMESTAMP, '+
  291.         'UserField0 VARCHAR(100), '+
  292.         'UserField1 VARCHAR(100), '+
  293.         'UserField2 VARCHAR(100), '+
  294.         'UserField3 VARCHAR(100), '+
  295.         'UserField4 VARCHAR(100), '+
  296.         'UserField5 VARCHAR(100), '+
  297.         'UserField6 VARCHAR(100), '+
  298.         'UserField7 VARCHAR(100), '+
  299.         'UserField8 VARCHAR(100), '+
  300.         'UserField9 VARCHAR(100) )'
  301.     );
  302.     end else begin
  303.       FConnection.ExecuteDirect(
  304.         CREATE_TABLE + 'Tasks ('+
  305.           'RecordID ' + FIdFieldTypeNameInSQL + ', '+
  306.           'ResourceID INT, '+
  307.           'Complete ' + FBoolFieldTypeNameInSQL + ', '+
  308.           'Description VARCHAR(255), '+
  309.           'Details VARCHAR(1024), '+
  310.           'CreatedOn TIMESTAMP, '+
  311.           'Priority INT, '+
  312.           'Category INT, '+
  313.           'CompletedOn TIMESTAMP, '+
  314.           'DueDate TIMESTAMP, '+
  315.           'UserField0 VARCHAR(100), '+
  316.           'UserField1 VARCHAR(100), '+
  317.           'UserField2 VARCHAR(100), '+
  318.           'UserField3 VARCHAR(100), '+
  319.           'UserField4 VARCHAR(100), '+
  320.           'UserField5 VARCHAR(100), '+
  321.           'UserField6 VARCHAR(100), '+
  322.           'UserField7 VARCHAR(100), '+
  323.           'UserField8 VARCHAR(100), '+
  324.           'UserField9 VARCHAR(100) )'
  325.       );
  326.  
  327.     end;
  328.     if CreateIndex then begin
  329.       FConnection.ExecuteDirect(
  330.         'CREATE INDEX TasksResourceID_idx ON Tasks(ResourceID)'
  331.       );
  332.       FConnection.ExecuteDirect(
  333.         'CREATE INDEX TasksDueDate_idx ON Tasks(DueDate)'
  334.       );
  335.       FConnection.ExecuteDirect(
  336.         'CREATE INDEX TasksCompletedOn_idx ON Tasks(CompletedOn)'
  337.       );
  338.       if Lowercase(FConnection.Protocol) = 'firebird' then
  339.         CreateAutoInc_Firebird('Tasks', 'RecordID');
  340.     end;
  341.   end;
  342. end;
  343.  
  344.  
change to cerate tables for mysql
could be nor tight way but for me is working is what i need for now..


 

TinyPortal © 2005-2018