IBExpert Ltd does not accept liability for the topicality, accuracy, completeness or quality of the information and material provided unless the mistake occurred intentionally or through gross negligence. This refers to any loss, additional costs or damage of any kind suffered as a result of any use of any information and material IBExpert Ltd provides on its web sites. All offers are not binding and without obligation.
IBExpert Ltd has no influence on the design and contents of third party material linked or referred to from its web sites. Therefore, IBExpert Ltd expressly distances itself from such kind of material and rejects responsibility for any contents provided by third parties - unless it has full knowledge of illegal contents and would be able to prevent the visitors of its web sites from viewing those pages.
The layout of the web sites, diagrams, pictures and logos used and the collection of individual contributions are protected by copyright. Any duplication or use of objects such as diagrams, pictures or texts in other electronic or printed publications is not permitted without IBExpert Ltd's explicit agreement.
This disclaimer is to be regarded as part of the internet publication which you were referred from. If any of the terms and conditions should be determined invalid by reason of the relevant laws then the remaining terms and conditions remain uninfluenced by this fact.
(General Terms and Conditions Services)
The following terms and conditions of the IBExpert ("IBExpert") for the provision of consulting and other services ("General Terms and Conditions Services") apply to all contractual relations with customers in connection with consulting and other service contracts and are an integral part of the contract unless otherwise agreed in writing in an individual agreement between IBExpert and the customer. The General Terms and Condition for Services supplement IBExpert's Standard Business Terms ("General Terms and Conditions"), which are an integral part of the contract in addition to the General Terms and Conditions for Services.
2.1 IBExpert shall provide, upon separate assignment by the customer, diverse consulting and other professional services with regard to the selection, implementation, installation, use, and customer-specific customization of software programs. The consulting and services to be provided by IBExpert are laid down in such individual cases in the order confirmation. The General Terms and Conditions Services apply in particular for the following IBExpert services:
2.1.1 Identification of the specific software requirements of the customer, taking into consideration the existing customized hardware and software environment.
2.1.2 Planning and concept development for the realization of the introduction of general or IBExpert software programs.
2.1.3 Project support and consultation during the implementation phase of IBExpert software programs.
2.1.4 Implementation of pilot applications of the respective IBExpert software programs at the customer's business.
2.1.5 Consultation during the installation and implementation of IBExpert software programs selected by the customer.
2.1.6 Customer support during production and optimization of the operability of the IBExpert software programs.
2.1.7 Customer consultation regarding the optimal application of IBExpert software programs, such as supporting the creation of the system design, or the construction of customer templates, data warehouse functionalities and OLAP data sources.
2.1.8 Consultation during the customization and for extension of IBExpert software programs.
2.1.9 Instruction and training of end users and the customer's employees (e.g. as standard courses, workshops, seminars) for optimized use of IBExpert software programs.
2.2 The consultancy and professional services listed above will only be provided by IBExpert to the named conditions of a service contract or a supply contract, if this is explicitly agreed with the customer.
3.1 The specific objective, scope of the task and the approach is determined by the customer and is established and confirmed in writing in the order confirmation.
3.2. In as far as IBExpert provides support services as part of projects for the customer, the customer is obliged to regularly check that each documented set of project objectives are met. Project management and responsibility lie to this extent exclusively with the customer. IBExpert and the customer shall define by mutual agreement the nature and presentation of the results as well as the documentation and the reporting of project work, and agree deadlines hereby specifying which tasks are to be assumed by IBExpert.
3.3 IBExpert is to deploy qualified staff and to supervise and control these continuously during execution of the order. IBExpert shall retain sole discretion, which staff are to be employed or replaced.
3.4 Should the customer's staff provide active support in the projects, the customer will ensure that his employees are managed by a suitable employee. The designated customer contact must be named to IBExpert before the project support begins.
3.5 If IBExpert assists the customer with adjustments and upgrades of the IBExpert software programs, on behalf of and according to the customer's specifications, IBExpert is liable for the activity, but is not liable for any warranty and version maintenance for this, unless this has been specifically agreed.
3.6 IBExpert provides its consulting and other professional services during normal working hours outside the statutory public holidays of Lower Saxony, Germany, from Monday to Friday from 9:00 am to 5:00 pm. Additional services outside these hours shall be remunerated separately by special arrangement.
4.1 Consultancy and service contracts are to be remunerated according to time expenditure, with the amount in each case based on the prevailing current price list at the time of the order confirmation or on an individual offer made by IBExpert. The amount of time which is to be paid by the customer includes the activity of the IBExpert staff themselves, in addition to their participation in meetings, project meetings as well as any preparation and finishing work the staff may complete outside the customer's premises, e.g. at an IBExpert office. All prices are quoted net, without any deductions and exclusive of the statutory value added tax.
4.2 Any expenses incurred by IBExpert in connection with the provision of services, are invoiced to the customer exclusive of the statutory value added tax. Expenses include travel, accommodation costs and meal expenses, telecommunications, copying, printing and postage costs. Travel costs arising from the use of motor vehicles will be charged a flat rate of EUR 1.00 per kilometer traveled.
4.3 Services provided by IBExpert are invoiced upon completion of the consulting services, or weekly, if the consulting services extend to more than one week.
4.4 The amount of time, if specified in the order confirmation, is only an estimate. Exceedance of the estimated time may arise during the provision of the service. In such a case IBExpert will inform the customer about the excess of the originally estimated time quoted. If the customer wishes to set a mandatory ceiling to the amount of time expenditure, this must be expressly agreed in writing.
4.5 In the case of larger consultancy or service contracts IBExpert reserves the right to invoice the time accrued on a monthly basis. For individual, not too extensive one-off activities, such as installation support, instruction or training, IBExpert will invoice the services provided following completion.
4.6 If services are not provided or not provided in full due to justifiable reasons on the part of the customer, IBExpert may still invoice this, minus any expenditure saved.
For the consulting and support services provided, IBExpert shall be liable for the punctual and proper implementation, but not for economic or other performance success aims of the customer.
6.1 The customer will provide, if necessary, appropriate rooms for all IBExpert staff working for him, in which documents, technical equipment and data carriers can also be stored.
6.2 The customer will provide IBExpert, if necessary, with all requisite working materials to a sufficient extent without separate charge, and at all times offer the staff of IBExpert free access to all requisite information for their activities and provide them with all necessary information in due time.
6.3 In as far as IBExpert needs to install software programs at the customer's for testing purposes, as part of its consultation services, it is the customer's responsibility to provide an appropriate hardware and software environment in due time. The customer is obliged to test all functions of these software programs, in the customer's own hardware and software environment before putting into operation. IBExpert shall not be liable for any loss of data, if the loss would not have occurred with proper data backup within the area of responsibility of the customer. A proper data backup can be assumed, if the customer has verifiably backed up his data in machine-readable form on a daily basis and can ensure that this data can be recovered with reasonable effort.
7.1 The customer is entitled to fully use the services of IBExpert for the contractually stipulated purpose. IBExpert may appropriate the services otherwise, as long as he does not violate any confidentiality obligations. The aforesaid shall apply in particular to all documents and other materials compiled by IBExpert during the provision of the service for the customer.
7.2 Insofar as trade mark protectable work of any type (e.g. copyrights, patents, utility models) results from the consultation services, they will be attributed to IBExpert as if they were exclusively based on the activities of IBExpert employees. In this case IBExpert grants the customer non-recompensable, perpetual, non-exclusive, usage rights, transferable only with the consent of IBExpert.
8.1 IBExpert can provide training services (training, workshops, seminars) at the customer's premises or at a place designated by the customer. In such a case the customer shall ensure, at his own expense, that suitable premises and a sufficient number of computers per participant are available for the training dates agreed in writing. This also includes installation of the software to be taught on all computers.
8.2 Furthermore IBExpert conducts standard training (training courses, seminars, workshops, etc.) as described on their website www.ibexpert.net/.
8.3 Fees for standard training include, in addition to the participation fee, any necessary training materials and use of technical equipment and systems in the training classrooms. Refreshments are also included in the price. Travel costs, meals and accommodation expenses are to be borne by the participant or by the customer. Partial attendance does not entitle the participant to a reduction of the participation fee.
9.1 IBExpert reserves the right to use replacement speakers at the training sessions (training at the customer's, standard training), to alter the content of the training slightly, as well as, if necessary, reschedule the date and change location, e.g. when there is a small number of confirmed registrations, and if necessary, for organizational or other reasons, cancel a training event completely. In the latter case, any training fees already paid will be refunded in full.
9.2 The customer shall notify IBExpert immediately, should he be unable to attend the agreed training course dates. In case of cancellation of a training event by the customer up to two weeks before the course is due to begin, IBExpert is entitled to invoice a processing fee of EUR 250.00 plus the statutory value added tax. If a training event is cancelled up to a week before the training is due to start, half of the seminar fee, after that the full training fee is due, unless a substitute participant (standard training), can be provided. The above cancellation fees do not apply only if the customer can prove that no damage has occurred or is substantially lower than the cancellation fee, or the training event has been canceled by IBExpert in accordance with Section 9.1.
9.3 To meet the deadline cancellations must be received in writing by post for the attention of IBExpert.
9.4 Any form of reproduction of any or all of training materials handed over to the client (e.g. manuscripts, graphics, videos, etc.) on printed or electronic means either whole or in part requires the express written consent of IBExpert.
The general provisions regarding e.g. the conclusion of the contract, delivery, remuneration and terms of payment, retention of title and reservation of rights, liability, statute of limitation, place of jurisdiction, etc. contained in the IBExpert Standard Business Terms ("General Terms and Conditions") shall apply mutatis mutandis.
General Terms and Conditions Services - Status: 04.10.2016
Part 1: Valid for all IBExpert products and services
Part 2: Valid for Company Year License
Part 3: Valid for all IBExpert Software products, except company year license
Part 4: Valid for Software assurance products and other services provided
IBExpert - Firebird Administration Tool
Copyright (C) 2000-2026 IBExpert Ltd
All rights reserved.
(General Terms and Conditions)
1.1 The IBExpert Ltd Standard Business Terms ("General Terms and Conditions") shall apply to all contractual relations with customers in connection with deliveries and services of IBExpert Ltd ("IBExpert") and shall be deemed to be an integral part of the contract, unless otherwise agreed in an individual written agreement between IBExpert and the customer. The General Terms and Conditions also apply to future business relations with the same customer, without IBExpert being required to refer to the validity of each individual contract with this customer.
1.2 These General Terms and Conditions shall apply exclusively. Any deviating, contradicting or supplementary general terms and conditions of a customer shall only become an integral part of the contract if IBExpert has agreed to their validity explicitly and in writing. This requirement of consent shall apply in all cases, particularly if IBExpert, being aware of the general terms and conditions of the customer, performs a delivery or service unconditionally for the customer.
1.3 Solely IBExpert managing directors are entitled to agree on any other terms of delivery and services which deviate from these General Terms and Conditions.
1.4 The General Terms and Conditions shall be supplemented by specific Terms and Conditions for the transfer of software ("Standard Business Terms Software"), terms of contract for the maintenance of software and support services ("General Terms and Conditions Maintenance") and terms of contract for consulting and other services ("General Terms and Conditions Services"). The above provisions shall apply mutatis mutandis, in particular to the scope of application of these terms of contract.
1.5 The following references to the application of statutory provisions server only for clarification purposes. Therefore, even without such a clarification, the statutory provisions shall apply unless they are directly modified by the following General Terms and Conditions.
2.1 IBExpert offers shall be subject to change without notice and non-binding. This also applies if IBExpert has handed over to the customer, prior to the conclusion of the contract, catalogues, product descriptions or technical documentation (e.g. user manuals, calculations, cost calculations), to which IBExpert reserves property rights and copyrights.
2.2 Every order of software programs made by the customer or order placement of any other service by the same shall apply as a binding contractual offer unless otherwise specified in the order or order placement or other agreements. IBExpert has the right to accept this contractual offer within four weeks from receipt by IBExpert. Acceptance can be declared either in writing (e.g. through order confirmation) or through delivery of the software programs or performance of the other services to the customer.
2.3 In the case of electronic transmission of an order, IBExpert shall not be obliged to confirm any orders received by electronic means. Incoming email received by IBExpert on working days between 0:00 and 16:00 hours shall be deemed to have been received at 16:00 hours, unless an earlier retrieval can be proved. Email received by IBExpert between 16:01 and 23:59 hours shall be deemed to have been received on the following working day at 16:00 hours unless an earlier retrieval can be proved.
3.1 Deliveries of software programs (data media, user manuals and other documentation if existing) or other goods shall be carried out EXW (Ex Works IBExpert) according to INCOTERMS 2000. At the customer's request, the software programs or other goods can be sent to a different destination. If collection by the customer or pick-up by third parties has not been agreed upon and the customer has not issued any special instructions, IBExpert has the right to determine the type of shipment (in particular carrier, shipping route, packaging) itself.
3.2 The risk of accidental loss and accidental impairment shall be transferred to the customer at the time of delivery. For delivery it does not matter whether the customer is in delay of acceptance. In the case of shipment the risk of accidental loss and accidental impairment shall already be transferred when the shipment is leaves the works or the warehouse of IBExpert, at the latest upon delivery to the freight forwarding company, carrier or other person or institution appointed to carry out shipment. In the case of transfer of software programs by electronic means of communication, e.g. internet, the risk shall pass to the customer as soon as the software leaves the sphere of influence of IBExpert (e.g. the server operated by IBExpert during download). In such a case, IBExpert is only responsible for the proper availability of the software for downloading.
3.3 Agreed delivery dates shall only be regarded as binding if they have been explicitly assured to be binding in writing by IBExpert. If delivery dates have been agreed as binding, IBExpert shall not be considered in default without written warning by the customer.
3.4 Compliance with periods and deadlines for deliveries requires that the customer provides all information necessary for delivery in due time, and in particular performs the obligations to cooperate for which he is responsible. If this requirement is not met, the delivery deadline shall be extended appropriately. This shall not apply if IBExpert is responsible for the delay.
3.5 If, despite proper stocking and for reasons not attributable to IBExpert, IBExpert does not receive supplies or services at all or not correctly or in due time from a subcontractor, or if events of force majeure occur, IBExpert shall inform the customer in due time in writing or in text form. In such a case, IBExpert shall be entitled to postpone the delivery during the period of hindrance, or to withdraw from the contract in whole or in part with regard to the part of supplies not yet delivered, provided that IBExpert has complied with the above information obligation and has not assumed the procurement risk. Force majeure is defined as illegal strike and lockout, interventions by public authorities not due to the fault of IBExpert, energy and raw materials shortages, transport bottlenecks not caused by IBExpert's negligence, restraints on operation, for example by fire, water and mechanical damage, and all other impediments which when looked at objectively were unforeseeable and have not been caused by the fault of IBExpert. If a deadline or period of delivery has been agreed with binding effect and the agreed deadline or period of delivery has been exceeded, the customer shall be entitled, following expiry of an adequate additional period granted, to withdraw from the contract for the part unfulfilled, if he cannot objectively be expected to adhere to the contract. The customer shall be entitled to no further claims in such case.
3.6 IBExpert shall have the right to effect partial deliveries and services. This does not apply if the customer has no interest in the respective partial delivery or service.
3.7 If IBExpert defaults on the delivery, the customer can demand compensation for each complete week of delay to the amount of three (3) percent, though no more than a total of fifteen (15) percent, of the net order value of that part of the delivery, which was not put into effective operation because of the delay, provided that the customer can substantiate that he has incurred a loss as a result thereof. The customer may only withdraw from the contract in accordance with the statutory provisions only if IBExpert is responsible for the delay of delivery. On request by IBExpert, the customer shall be required to explain within a reasonable period whether he wishes to withdraw from the contract because of the delay of delivery or whether he insists on delivery.
3.8 If delivery is impossible, the customer is entitled to claim damages, unless IBExpert is not responsible for the impossibility of delivery. However, the claim for damages by the customer shall be limited to twenty-five (25) percent of the net order value of the part of the delivery that cannot be put into effective operation due to the impossibility. The right of the customer to rescind the contract shall remain unaffected.
3.9 Claims for damages on the part of the customer due to delayed delivery, due to impossibility of delivery as well as claims for damages in lieu of performance, which go beyond the limits specified in subsections 3.7 and 3.8, are excluded in all cases of delayed delivery as well as in cases of impossibility. However, the liability limitations in subsections 3.7 and 3.8 do not apply to the extent that liability is mandatory in cases of intent, gross negligence, breach of a material contract or liability for injury of life, body or health. The limitation of IBExpert's liability in the case of negligent violation of a major contractual obligation to the typical contractual, foreseeable damage in accordance with subsection 7.2 shall remain in force in any case.
4.1 Unless fixed prices have been expressly agreed, the amount of the price for the respective delivery or service is based on the IBExpert price list valid at the time of the order confirmation. Prices are quoted net, ex warehouse, without any deductions and exclusive of the statutory value added tax.
4.2 IBExpert expressly reserves the right to reject checks or bills of exchange. They are always only accepted as conditional payment. Discount and bill charges shall be borne by the customer and are due immediately. If the customer pays invoices by remittance from abroad, any expenses related to the receipt of payment shall be borne by the customer.
4.3 Invoices are due and payable in advance without deduction upon receipt of the invoice, unless otherwise agreed in the order confirmation. Once this period has elapsed, the customer shall be in default. If the customer is in default of payment, the annual default interest rate shall be eight (8) percentage points above the current EU base rate.
4.4 If no fixed prices have been agreed, IBExpert reserves the right to change prices reasonably if, after conclusion of the contract, cost increases occur as a result of material purchasing or production costs, taxes, wage costs or incidental wage costs as well as costs of energy and costs resulting from environment protection requirements and if there is a period of more than two months between conclusion of the contract and delivery. Any increase in the above sense shall be excluded to such extent as the costs for the mentioned factors are compensated for by a cost reduction for other than the mentioned factors in relation to the burden of total costs for the supply.
4.5 The customer has a right to offset only if his counterclaims have been legally established or recognized as ready for decision in a lawsuit, or in writing by IBExpert. Furthermore, the customer can exercise a right of retention only if his claim, on the basis of which he withholds payment, is based on the same contractual relationship and has either been legally established, or recognized as ready for decision in a lawsuit, or is recognized by IBExpert.
4.6 If the customer is in default with payments to a significant amount, IBExpert has the right to temporarily discontinue further performance of services, which stem from the same legal relationship to which IBExpert has contracted, and to demand due all outstanding amounts from this relationship immediately. In this case any agreed dates or deadlines for the performance of outstanding deliveries and services on the part of IBExpert are invalid, without any requirement for IBExpert to make specific reference thereto.
5.1 IBExpert reserves all rights to the deliveries and services until full payment of all accounts receivable has been made. This applies in particular to the title to concrete items delivered (e.g. hardware, data media, user manuals, other documentation, etc.) as well as to intellectual property rights (e.g. copyright on software programs and user manuals).
5.2 Deliveries and/or services from IBExpert may neither be pledged to third parties nor transferred to the same as security prior to complete payment of the secured claims. The customer shall be required to notify IBExpert immediately by registered letter if and to what extent seizure by third parties takes place.
5.3 In the event of breach of the contract by the customer, in particular in the case of failure to make payment of the fee due, IBExpert shall have the right to withdraw from the contract according to the legal provisions and to demand return of any goods delivered (e.g. hardware, data media, user manuals, etc.) on the basis of the retention of title and withdrawal, as well as to revoke any rights granted to the customer of use of intellectual property (e.g. rights of use to software programs).
5.4 If the customer has the right to resell the deliveries received from IBExpert in the ordinary course of business, which may be the case, for example, with IBExpert sales partners, the customer shall assign to IBExpert as of now all receivables of the final invoice amount (incl. VAT) of the IBExpert claim, which are due to the customer from his clients or third parties from the resale. The customer shall remain authorized to collect this claim even after the assignment. IBExpert's power to collect the claim itself shall not be affected by this. However, IBExpert shall agree not to collect the claim as long as the customer complies with his payment commitments, is not in default of payment and, in particular, no application has been made for initiation of insolvency proceedings or has been submitted for suspension of payment. If this is the case, however, IBExpert may demand that the customer informs IBExpert of the assigned claims and their debtors, provides all information necessary for collection, hands over the relevant documents and notifies the debtors of the assignment. IBExpert shall undertake to release the existing securities at the request of the customer to the extent that the value of the collateral exceeds the secured claims by more than ten (10) percent; IBExpert is responsible for selection of the collateral to be released.
6.1 The customer is obliged to inspect goods and services, within eight (8) working days of receipt of the supply or service, for completeness and obvious defects, in particular for obvious deficiencies or damage, and to notify IBExpert in writing about such shortcomings, at the latest within another eight (8) working days from receipt of the supply or service, stating the order details and the invoice number. In the case of non-evident (hidden) defects, the customer shall be required to notify IBExpert about such defects in writing within eight (8) working days after their detection. Observance of the deadline shall be regarded as met if the respective complaint is dispatched in due time. If the customer fails to send the above-defined complaints, liability for any defects not reported shall be excluded. The customer shall bear the burden of proof for compliance and punctuality of the complaint as well as for the existence and time of establishment of a defect.
6.2 In order to avoid losses, the customer is required to ensure that his data is backed up and saved on a daily basis using current state of technology.
6.3 As part of the services owed by IBExpert the customer shall meet any necessary obligations to cooperate free of charge. This includes in particular that the customer shall convey all information necessary to IBExpert, such as the customer's goals and requirements, in due time and unbidden. Furthermore, the customer shall provide any facilities that may be necessary for installation or operation of the deliveries or services in due time.
7.1 The liability of IBExpert as well as of its legal representatives or vicarious agents is in accordance with the statutory regulations in cases of intent or gross negligence.
7.2 In addition, IBExpert and IBExpert's legal representatives or vicarious agents is not liable for slight negligence in so far as none of the following cases is given:
7.2.1 Damages resulting from injury to life, body or health;
7.2.2. the violation of obligations, if the service can no longer be reasonably expected by the customer;
7.3.3. the acceptance of a guarantee for the quality of a service, for the existence of successful performance or for a procurement risk;
7.4.4. intervention of the provisions of the Product Liability Act;
7.5.5. malice, initial impossibility as well as other cases of mandatory statutory liability;
7.5.6. infringement of a major contractual obligation; in such a case, however, IBExpert's liability shall be limited to compensation for the foreseeable, typically occurring damage or loss. "Substantial contractual obligations" are those obligations that protect the major contractual legal positions of the customer, which the contract has to grant to him pursuant to its contents and objective; also substantial are those contractual obligations, the fulfillment of which is only made possible by the proper execution of the contract, and on which the customer regularly trusts and may trust. The liability of IBExpert is also limited in cases of gross negligence to the contractually typical, foreseeable damage if none of the exceptions listed above exists. The above regulations do not entail a change in the burden of proof to the detriment of the customer.
7.3 Due to a breach of obligations that is not based on a defect, the customer can only withdraw provided that other legal requirements are met if IBExpert is responsible for the breach of obligations. Withdrawal is excluded if the breach of obligations is insignificant.
7.4 IBExpert shall not be liable for any loss of data, if the loss would not have occurred with proper data backup within the sphere of responsibility of the customer. A proper data backup can be assumed, if the customer has verifiably backed up his data in machine-readable form on a daily basis and ensures that this data can be recovered with reasonable effort. IBExpert's liability for data loss unless by deliberate or grossly negligent actions on the part of IBExpert shall be limited to the typical recovery effort and expenditure that would have arisen in the case of proper data backup.
7.5 In addition, IBExpert shall not be liable if software errors have occurred following a change in the use and operating conditions, after operating errors, after any interventions in the software program, such as changes, adaptation, connections to other programs, and/or after use in breach of the contract, unless the customer provides proof that the errors already existed at the time of delivery of the product or performance of the service or are not causally connected to the above mentioned events.
7.6 If IBExpert's liability is excluded or limited, this shall also apply to the personal liability of non-executive employees and other vicarious agents of IBExpert. The objection of contributory negligence shall remain open.
7.7 If claims for damages according to the above clauses are excluded or limited, this exclusion or restriction shall also extend in each case to damages in addition to performance and damages instead of performance, no matter on what legal grounds, in particular because of concurrent claims based on defects, a breach of obligations based on the contractual relationship, tort or claims for reimbursement of expenses. The provisions stipulated in subsection 3.7 additionally apply to liability for default and the provisions in subsection 3.8 to liability because of impossibility.
Limitation of claims by the customer no matter on what legal grounds - shall expire one year from the statutory commencement of the limitation period. This shall not apply if statutory regulations provide for shorter periods. However, the statutory limitation periods shall apply in the following cases:
to warranty claims if IBExpert has fraudulently concealed the defect or has provided a guarantee for the quality;
for claims for damages resulting from injury to life, body or health;
for other claims for damages based on a deliberate or grossly negligent breach of obligations;
for claims for damages arising from a breach of other major contractual obligations;
for claims under the Product Liability Act.
9.1 If the customer has the legal right to demand damages instead of performance or compensation of expenses, after a deadline set by him has elapsed without effect, such a setting of a deadline must additionally contain an explicit warning of the customer that he will exercise these legal remedies following expiration of the deadline.
9.2 The above subsection shall apply mutatis mutandis if the customer has the legal right to withdraw from the contract with IBExpert or to terminate this contract for cause without notice after an appropriate period of time set by him has elapsed without effect.
10.1 If the contracting parties exchange confidential information of a commercial or technical nature or if information from the sector of one party which is usually regarded as a trade secret, such as customer data, becomes known to the other party, the parties shall be required to handle this information in a strictly confidential manner and not to make it accessible to third parties without the consent of the other contracting party, nor to use it in any way outside the performance of the respective contract. Excluded from the mutual obligation of confidentiality is made for such information that demonstrably
a) is generally evident or becomes evident without a contracting party having a hand in the matter;
b) becomes known to a contracting party from another source that has no obligation to the other contracting party to maintain secrecy;
c) must be disclosed by a contracting party (in particular with respect to courts, criminal prosecution agencies and authorities) due to mandatory legal provisions.
10.2 Each contracting party agrees to return all confidential information physically communicated by the other party at any time at its request to the other contracting party or to destroy such information, according to their choice, without retaining copies or records; archiving of documents to meet statutory retention periods remains unaffected. A contracting party's own records, compilations and evaluations that contain confidential information shall be destroyed immediately at the request of the other party; electronically transmitted and/or stored confidential information must be deleted. The completed destruction/deletion shall be confirmed in writing to the other contracting party on request.
10.3 The period of validity of this confidentiality obligation shall be five (5) years longer than the term of this contract.
10.4 However, IBExpert shall retain the right to transmit research files that may contain trade secrets, such as customer data, to licensors (also OEM franchise partners) in order to answer customer questions and solve customer problems in connection with the software transferred by IBExpert. In this case IBExpert shall also require the licensor to maintain confidentiality.
11.1 If the customer is a businessman, a legal entity under public law or a public trust, Malta is the agreed place of jurisdiction. The same shall also apply in the case that the customer has no general domestic place of jurisdiction. However, IBExpert also has the right to file suit at the customer's registered place of business.
11.2 The Laws of Malta shall govern the legal relations between IBExpert and the customer under exclusion of the United Nations Convention on Contracts for the International Sale of Goods (CISG).
11.3 Any amendment or addition to these General Terms and Conditions must be in writing; this also applies to the repeal of the written form stipulation. Electronic documents, such as email, without a qualified electronic signature, as defined in the Digital Signature Act, do not adhere to the requirements of the written form.
General Terms and Conditions Status: 01.01.2022
End Part 1
(General Terms and Conditions Software Lease)
1.1 The following terms and conditions of IBExpert Ltd ("IBExpert") governing the leasing of software ("General Terms and Conditions Software Lease") shall apply to all contractual relationships with customers in connection with the permission of use of software programs for a limited period of time ("Software Lease Contract") and shall be deemed to be an integral part of the contract unless otherwise agreed between IBExpert and the Customer by an individual agreement in writing. The General Terms and Conditions Software Lease supplement the IBExpert Standard Business Terms ("General Terms and Conditions") which shall, together with the General Terms and Conditions Software Lease, constitute an integral part of the contract.
1.2 Any customer General Terms and Conditions, which deviate, conflict with or include additional terms to these Standard Business Terms Software Lease, shall only become part of the Contract if IBExpert explicitly approves their validity in writing. Such approval requirement shall be applicable in all cases, specifically also when IBExpert being aware of the Customer's General Terms and Conditions performs a supply or service to the customer without reservation.
2.1 IBExpert grants to the Customer permission to use the software program specified in the order confirmation ("Contract Software") for the duration of the respective Software Lease Contract to the terms and conditions laid down in these Standard Business Terms Software Lease. IBExpert shall transfer the Contractual Software in machine-readable form (Object Code) on a data carrier or by data telecommunication (e.g. by Internet download). The Customer shall be provided with a printed and/or electronic user manual as well as with other documentation if available (e.g. operating manual, help files, online help, other technical information and documentation). These Standard Business Terms Software Lease shall apply mutatis mutandis for the provision of new versions of the Contractual Software (e.g. patches, bug fixes, updates, upgrades. etc.). In the event that IBExpert transfers the Contractual Software to the Customer via data telecommunication, IBExpert shall endeavor to warrant the availability of the Contractual Software during regular business hours on a server for downloading by the Customer.
2.2 The online documentation of the Contractual Software describes in detail the functions and services that can be performed by the Contractual Software if used as stipulated in the Contract ("IBExpert features"). Solely the relevant Performance Description shall be significant for the quality of the Contractual Software and its intended use. Public statements, recommendations or advertisements shall not constitute any description of the quality of the Contractual Software.
2.3 The services to be performed by IBExpert within the scope of lease of the Contractual Software shall not include the installation of the software nor customized adjustments ("Customizing"), training or other consulting or company services above and beyond the leasing of the Contractual Software.
2.4 IBExpert shall, during the contractual period of the respective Software Lease Contract, maintain the contractually stipulated state of the Contractual Software, i.e. it will ensure the usability of the Contractual Software in conformity with the Performance Description. Under this obligation, IBExpert shall make available to the Customer new program versions of the Contractual Software and shall provide First Level Support in accordance with the following provisions.
2.4.1 The permission to use new program versions shall be granted provided that they are currently marketed by IBExpert and available. Such obligation of a permission of use shall not apply to those extensions of the Contractual Software that are offered and marketed by IBExpert separately as a new stand-alone product, and to new developments of the Contractual Software offering the same or similar functions on a different technological basis.
2.4.2 First Level Support shall in particular cover all inquiries regarding deployment and configuration issues and questions regarding applications in relation to the Contractual Software including basic advice by email ("Support"). If the Customer has acquired the Contractual Software through a distributor of IBExpert ("Partner"), the Customer can request the "First Level Support" from the respective partner. The partner responsible for providing First Level Support will be stated in the order confirmation.
The contracting parties to any Software Lease Contract shall be IBExpert and the Customer. In the event that the Customer has obtained the Contractual Software via a partner of IBExpert, the latter shall act only as an intermediary without becoming a party to the Software Lease Contract himself.
4.1 The amount of remuneration payable for the lease of the Contractual Software ("Lease Fee") shall result from the order confirmation. The amount due for the rental of the Contract Software remuneration (rent) is stated in the order confirmation. Insofar as this is not otherwise regulated, the lease fee for 12 months, 24 months or 36 months (software lease contract) is due in advance and payable immediately to IBExpert.
4.2 Should the Customer fail to pay the Lease Fee to schedule, IBExpert shall be entitled to claim interest in the amount of 8 per cent above the base interest rate according to Art. 247 Civil Code (BGB) as damages for delay, unless IBExpert proves that the damage suffered by IBExpert as a result of the delay is greater.
4.3 The Customer shall be entitled to offset, provided his counterclaim has been legally established by a declaratory judgment, recognized in a lawsuit as ready for decision, or has been accepted or is undisputed by IBExpert. A right of retention can be exercised by the Customer only if his claim for which payment is retained, is based on the same contractual relationship and has been established by a declaratory judgment, recognized in a lawsuit as ready for decision, or has been accepted or is undisputed by IBExpert.
4.4 IBExpert shall be entitled to raise the lease fee for the first time after the lapse of twelve months after the conclusion of the contract in writing, if and to the extent to which the material and labor costs incurred by IBExpert for maintaining the contract-conforming state of the Contractual Software have increased.
5.1 IBExpert grants the Customer the non-exclusive and non-transferable right, temporarily for the duration of the corresponding Software Lease Contract, to use the Contractual Software in accordance with the provisions of these Standard Business Terms Software Lease.
5.2 The Customer is entitled to install and use the Contractual Software on the number of installations stated in the Standard Business Terms Software Lease at any given time. The term "computer" shall refer to the hardware if it is a single computer system, or to the computer system with which the hardware is operating if the hardware is a component of a computer system. The Customer may use the Contractual Software on any available hardware, which he owns or leases or rents. If he changes the hardware, he must delete the software from the previously used hardware. Any simultaneous storing, keeping in stock or using on more than only one hardware unit is not permitted. Use of the Contractual Software within a network or any other multi-station computer system is permitted, as long as this does not create the possibility of simultaneous multiple use of the program.
5.3 The Customer is not allowed to copy the Contractual Software, unless such reproduction is essential in order to use the Contractual Software. This includes the installation of the Contractual Software from the original data carrier into the mass memory of the hardware used, and loading the Contractual Software into the working memory. In addition, the Customer is entitled to prepare and store a backup copy which is to be labeled as such. This may be used exclusively for archival purposes. Simultaneous use of the original and the backup copy is not permitted. No further copies may be made. This also includes reproduction by the issue of the program code. Only one printout or one copy may be made of the User Manual or other supporting documentation (including online documentation). Any further copying of the Contractual Software and the User Manual or other supporting documentation is only allowed with the express permission of IBExpert.
5.4 IBExpert shall grant the Customer the rights of use of the new program versions transferred within the scope of the corresponding Software Lease Contract, and to the extent to which such rights are existing for the Contractual Software according to the terms of the Contract with which they are being used, or which are intended to be replaced by them. The provisions of sections V. and VI. shall apply mutatis mutandis. The right of use of any licensed Contractual Software, which is technically replaced by new program versions shall expire within two weeks from the date when the Customer uses the supplied program versions productively, however no later than one calendar month after the Customer has received the supplied program versions. The Customer is entitled to make one copy each of the technically replaced software programs for archiving purposes.
6.1 The Customer is not entitled to process and/or copy the Contractual Software beyond the contractually stipulated use unless this is imperative for the purpose of debugging and if IBExpert is in default of eliminating the defect. In such case, the Customer is permitted to commission the elimination of defects only to a third party that is not in a competitive relationship with IBExpert, if it is to be feared that important program functions and operations may be disclosed by the elimination of the defect. Modifications introduced by the Customer during the elimination of defects must be recorded and notified to IBExpert.
6.2 The Customer is also prohibited from analyzing, reassembling or in any way whatsoever processing or modifying the Contractual Software. A retranslation into other code forms ("decompiling") as well as any other kinds of reverse engineering of the different implementation stages of the Contractual Software by the Customer shall not be permitted subject to the following provision: The Customer shall be authorized to decompile the object code only if such decompilation is necessary to achieve interoperability with other software programs, if he has not been provided with the required data and/or information, following a written request setting an adequate time limit, and provided that the decompilation work is limited to those parts of the Contractual Software that are necessary to establish interoperability with other software programs.
6.3 The Customer is prohibited from removing any property and copyright references, serial numbers, version numbers, stickers, labels or trademarks of IBExpert or other manufacturers contained in the Contractual Software as well as in the User Manual or any other documentation.
6.4 The commercial use of the Contractual Software for third parties by way of the so-called "Application Service Providing (ASP)" or "Software as a Service" (SaaS) is not allowed. Furthermore, any use of the Contractual Software beyond the limits stipulated herein, e.g. in case of non-approved simultaneous multiple use by more than one user, is a use contrary to contract. For any period of overuse not agreed in the Contract, the Customer undertakes to pay the lease fee for the Contractual Software on basis of the actual scope of use according to the price list of IBExpert with retroactive effect after IBExpert immediately upon receipt of the corresponding invoice. In the event that the Customer fails to give notice of such overuse and IBExpert succeeds in otherwise discovering the overuse, the Customer shall pay IBExpert a flat-rate compensation for such unauthorized overuse to the amount of three times the lease fee that would have been payable for an authorized use of the Contractual Software by the Customer according to the price list of IBExpert. The customer is free to prove that IBExpert suffered lesser damages.
7.1 Without the prior written approval of IBExpert, the Customer shall not be entitled to transfer to a third party the copy of the Contractual Software submitted to him for use, nor the associated User Manual or any other documentation, in particular to sell, lease or lend the material to third parties.
7.2 The dependent use of the Contractual Software by third parties, who are subjected to the Customer's will regarding the manner of use, i.e. in particular by employees of the Customer, shall be permitted. This prohibition of simultaneous multiple use provided for in subsection 5.2 or 5.3 respectively shall remain unaffected.
8.1 The Contractual Software is supplied with a technical protection mechanism in the form of an electronic license control.
8.2 Any circumvention of the technical protection measures is a violation of the rights of IBExpert and is, under certain circumstances, also liable to prosecution. In particular, the removal and/or bypass of the software protection program routine is prohibited. Only in cases where the software protection impairs or prevents a trouble-free use of the program and IBExpert, despite notification and detailed description of the fault, is not able or willing to eliminate the fault within a reasonable period of time, the software protection may be removed or evaded in order to ensure the operability of the Contractual Software. The burden of proof of the impaired or hindered usability lies with the Customer.
9.1 It is the customer's responsibility to provide an appropriate hardware and software environment in due time.
9.2 Prior to the startup of the Contractual Software, the Customer is obliged to test all functions of the Contractual Software in the Customer's hardware and software environment. In the same manner, the Customer must check upon receipt that the data carrier or remote data transfer (Internet downloads), user manuals and other documentation is free from defects. Any defects discovered by the Customer must be notified to IBExpert immediately. To this end, the Customer shall forward to IBExpert all information available to him necessary for eliminating the defect.
9.3 The Customer is obliged to take appropriate measures to prevent unauthorized access to the Contractual Software and to the user manuals or other documentation by taking appropriate measures. The Customer shall keep in safe custody the original data carriers or downloads supplied, as well as the data carriers with the copies prepared by him conformant to the contract. It shall also expressly instruct its employees, colleagues and vicarious agents, who use the Contractual Software in compliance with the provisions of these Standard Business Terms Software Lease, about the observation of these Standard Business Terms Software Lease and of the provisions of copyright law.
10.1 IBExpert warrants that the Contractual Software, when used conformant to the contract, will comply with its performance description and does not contain defects which impair the suitability of the Contractual Software for the contractually agreed application more than insubstantially. Minor deviations from the performance description shall not be considered as defects. Insignificant deviations from the specifications are not deemed to be a defect.
10.2 The Customer shall be required to inform IBExpert immediately in writing of any apparent defects, specifying and describing how the respective defect manifest itself, what are its implications and under what circumstances it occurs.
10.3 In case of errors contained in the User Manual or in any other documentation, IBExpert's warranty shall be such as to inform the Customer how the incorrect text passages should read correctly.
10.4 A defect properly reported by the Customer shall be removed by IBExpert by way of subsequent remedy, i.e. by rectification or replacement. In the first instance IBExpert has the right to choose in what form and manner a defect is removed by way of subsequent fulfillment. IBExpert's right to refuse the kind of subsequent fulfillment pursuant to statutory requirements remains unaffected. As far as is reasonably acceptable for the Customer, IBExpert shall be entitled to remediate the defect by supplying the Customer with a new version of the Contractual Software (e.g. as an update or maintenance release/patch) which no longer contains or eliminates the notified defect. The Customer may not enforce a leasing fee diminution by a deduction from the agreed leasing fee, unless the right of diminution is uncontested or established by a court judgment. The right of diminution in price shall only cover the particular defective functionality of the Contractual Software.
10.5 IBExpert shall not be held liable under a warranty if defects of the Contractual Software have occurred following alteration to the conditions of application and operation, and following installation and user errors, unless attributable to errors in the User Manual or other documentation; following interference with the Contractual Software such as alterations, modifications, connections with other programs, and/or after any use in breach of contract, unless the Customer proves that the errors already existed on transfer of the Contractual Software, or are in no causal relation with the aforementioned events. The foregoing shall not apply if the Customer is entitled to change the Contractual Software, in particular when exercising the right of self-remedial action in case of defects pursuant to Art. 536 a paragraph 2 Civil Code (BGB), and the changes are properly performed and comprehensively documented.
11.1 The liability regardless of negligence or fault of the lessor pursuant for defects of the Contractual Software already existing at the time of conclusion of the contract shall be expressly excluded.
11.2 In other respects, the liability regulation found in Section 9 of the IBExpert Terms and Conditions apply.
12.1 As far as IBExpert is obliged to deliver new program versions to the customer, the warranty provisions in case of defectiveness, listed under section X. of the Standard Business Terms Software Lease apply in the case of defectiveness of these software programs.
12.2 For the services provided under the first-level support consulting and support services IBExpert shall be liable for the punctual and proper implementation, but not for economic or other performance success aims of the customer.
13.1 Unless otherwise provided for in the order confirmation, each software lease contract shall come into force upon its completion.
13.2 The Software Lease Contract has a duration of 12, 24 or 36 months and is extended by one year unless three months' notice of termination is given prior to the expiry of the of the original or extended contract period respectively.
13.3 In addition, each contracting party is entitled to give extraordinary notice of termination of the Software Lease Contract for extraordinary cause if he can no longer be reasonably expected to continue the contractual relationship. A termination by the Customer due to inability to grant the contractual use shall be admissible only when IBExpert has been given an adequate chance to remedy the defect and it is deemed to have failed. IBExpert may terminate the Contract extraordinarily without notice when the Customer prepares pirate copies of the Contractual Software, passes the Contractual software to others without being authorized to do so, does not prevent the access by unauthorized persons, decompiles the Contractual Software without being entitled to do so, is in default of payment of the lease fee for more than two months or continues to use the Contractual Software in breach of contract in spite of having received a cease-and-desist letter.
13.4 Termination of the software lease contract shall only be valid in written form by postal letter. A transmission of the notice of termination by telecommunication services or electronic means (e.g. by facsimile transmission or email) is not sufficient to comply with the aforementioned written form stipulation.
14.1 Upon termination of the Software Lease Contract, the Customer shall be obliged to return to IBExpert the Contractual Software on the original data carrier, including the User Manual and all other documentation. Such return must be at no charge for IBExpert. Any copies made of the Contractual Software shall also be delivered to IBExpert or must be deleted if no delivery is possible. If the object of the Software Lease Contract is a software download, then such downloaded software and all copies must be deleted completely upon termination of contract. After being carried out, the deletions shall be confirmed to IBExpert in writing by the Customer.
14.2 The customer may not continue to use the licensed software in any way after the end of the Software Lease Contract.
15.1 As far as IBExpert allows customers to download, install and register any software programs for gratuitous use ("Freeware", here IBExpert Personal Edition), the provisions of this section XV. shall apply. Furthermore, these provisions shall apply mutatis mutandis to the transfer of new program versions of such Freeware (e.g. patches, bug fixes, updates, upgrades, etc.) as well as to any user documentation of the Freeware made available for downloading on IBExpert's homepage.
15.2 IBExpert shall provide the Freeware to the Customer in machine-readable form (Object Code) together with an electronic user manual and, if available, other documentation (e.g. operating instructions, help files, other technical information and documentation). The transfer of the Freeware und the associated user documentation shall be realized by data telecommunication ("download") or by transfer of a data carrier at the discretion of IBExpert. IBExpert is not obliged to provide further, additional supplementary services for the Freeware, such as support and maintenance services.
15.3 The user manual or other documentation of the Freeware shall describe in detail what features and benefits can be achieved by the Freeware when used as stipulated in the Contract ("Performance Description"). Solely the relevant Performance Description shall, to such extent, be binding for the quality of the Freeware and its intended application. Public statements, recommendations or advertisements shall not constitute any indication of the quality of the Contract Software.
15.4 IBExpert grants the Customer the non-exclusive and non-transferable right, temporarily to use the Freeware supplied in the object code in accordance with the provisions of these Contractual Terms.
15.5 The Customer shall not be entitled, without the prior written consent of IBExpert, to transfer the copy of the Freeware provided, as well as the associated user manual and other documentation - if applicable - for use to any third party and to sell, lease or lend them to third parties. In particular, the Customer is not allowed to transfer the Freeware to third parties against payment of a charge, e.g. by way of the so-called "Application Service Providing (ASP)" or "Software as a Service" (SaaS). Otherwise the above provisions in sections 5.2, 5.3 and VI. for using the Contractual Software shall apply mutatis mutandis to the use of Freeware.
15.6 In connection with the transfer of Freeware, IBExpert shall be liable only for intent and gross negligence. Any further claims for damage and compensation of expenses of the Customer for whatever legal reason, in particular due to infringement of duties arising from the relationship under the law of obligations and from tortuous acts, shall be excluded.
15.7 IBExpert shall be liable for material and legal defects of the Freeware only if IBExpert has fraudulently concealed a material and/or legal defect. Any further liability or warranty for material or legal defects shall be excluded.
15.8 Unless no deviating regulations have been provided for in this section XIV., the provisions of the General Terms and Conditions shall apply to the licensing of Freeware mutatis mutandis.
Unless otherwise provided for in these Standard Business Terms Software Lease, the Standard General Business Terms of IBExpert ("General Terms and Conditions") shall apply on a supplementary basis.
General Terms and Conditions Software Lease - Status: 01.01.2022
End Part 2
(General Terms and Conditions Software)
The following terms and conditions of IBExpert Ltd ("IBExpert") governing the supply of software ("General Terms and Conditions Software") shall apply to all contractual relationships with Customers in connection with the permanent supply of software programs and shall be deemed to be an integral part of the contract unless otherwise agreed between IBExpert and the customer by an individual agreement in writing. The General Terms and Conditions Software supplement the IBExpert Standard Business Terms ("General Terms and Conditions") which shall, together with the General Terms and Conditions Software, constitute an integral part of the contract.
2.1 IBExpert shall provide the Customer with the software program as specified in the order confirmation (Contractual Software) in machine-readable form (object code) together with a printed and/or electronic user manual as well as with other documentation if available (e.g. operating manual, help files, online help, other technical information and documentation). IBExpert shall transfer the Contractual Software, at its discretion, on a data carrier or by data telecommunication (e.g. by Internet download). These General Terms and Conditions Software shall apply mutatis mutandis for the provision of new versions of the Contractual Software (e.g. patches, bug fixes, updates, upgrades. etc.).
2.2 In the event that IBExpert transfers the Contractual Software to the Customer via data telecommunication, IBExpert shall endeavor to warrant the availability of the Contractual Software during regular business hours on a server for downloading by the Customer.
2.3 The online documentation of the Contractual Software describes in detail the functions and services that can be performed by the Contractual Software if used as stipulated in the Contract ("Specifications"). Solely the relevant Performance Description shall be significant for the quality of the Contractual Software and its intended use. Public statements, recommendations or advertisements shall not constitute any description of the quality of the Contractual Software.
2.4 The services to be performed by IBExpert within the scope of lease of the Contractual Software shall not include the supply of new versions of the licensed software, software installation, nor customized adjustments ("Customizing"), training or other consulting or company services above and beyond the leasing of the Contractual Software. In particular, IBExpert is not obliged to support the Customer, in attempts to connect the Contractual Software to a different software for the purpose of performing data exchange using any interfaces which may be contained in the Contractual Software. Both the establishment of such a connection, as well as the services mentioned above, will be provided by IBExpert only in a separate agreement with the Customer and for an additional fee.
3.1 The order confirmation from IBExpert or the respective user manual (online documentation) of the Contractual software states the prerequisite hardware and software environment (minimum processor clock rate, memory, operating system, etc.) for a correct and error-free operation of the Contractual Software. It is the Customer's responsibility to provide an appropriate hardware and software environment in due time. Should he fail to do this, the Customer takes full responsibility if the Contractual Software supplied cannot be used solely because of this failure.
3.2 The Customer is obliged to test all functions of the Contractual Software in the Customer's hardware and software environment. In the same manner, the Customer must check the faultlessness of the data carrier or remote data transfer (Internet downloads), user manuals and other documentation upon receipt. Any defects, not obvious in this examination and subsequently discovered by the Customer must be notified to IBExpert within the time period referred to in 7.4.
3.3 The Customer is obliged to take appropriate measures to prevent unauthorized access to the Contractual Software and to the user manuals or other documentation. The Customer will store the original supplied data carrier in a secure place to protect against unauthorized access by any third party.
3.4 The Customer will provide IBExpert upon request and within a reasonable period of time, written confirmation, that the Contractual Software is being used by the Customer in accordance with the contract, especially whether the Customer is complying with the contractually agreed terms of deployment (i.e. in terms of the number of installed licenses) as well as the Terms of Use in accordance with IV. And V. To verify the information provided by the Customer, IBExpert shall be entitled to conduct a Customer audit once in each calendar year. IBExpert will inform the Customer at least ten (10) working days prior to such an examination in writing of the commencement and the cause for or the scope of the audit. The Customer will allow IBExpert, or an auditor assigned by IBExpert, access to its property and buildings during normal business hours, as well as access with administrative rights to the hardware and software on which the Contractual Software is installed, to the extent as is necessary to review the contractual use of the Contractual Software. IBExpert is obliged to maintain confidentiality of all non-publicly known knowledge concerning the Customer's enterprise, which IBExpert may learn of during the review. The cost of the audit shall be borne by the Customer should a significant violation of obligations on the part of the Customer be detected.
4.1 IBExpert grants the Customer the perpetual, non-exclusive and non-transferable right to use the Contractual Software in accordance with the provisions of these General Terms and Conditions Software. This right of use is subject to the full payment of the Contractual Software.
4.2 The Customer is entitled to install and use the Contractual Software on a single computer at one location at any given time. The term "computer" shall refer to the hardware if it is a single computer system, or to the computer system with which the hardware is operating if the hardware is a component of a computer system. The Customer may use the Contractual Software on any available hardware, which he owns or leases or rents. If he changes the hardware, he must delete the software from the previously used hardware. Any simultaneous storing, keeping in stock or using on more than only one hardware unit is not permitted. Use of the Contractual Software within a network or any other multi-station computer system is permitted, as long as this does not create the possibility of simul-taneous multiple use of the program. Deviation of the number and the nature of usage rights (per user or per workplace) may be affirmed in the IBExpert order confirmation.
4.3 The Customer may copy the Contractual Software, if such reproduction is essential in order to use the licensed software. This includes installation of the Contractual Software from the original data carrier to the mass storage of the hardware used, and loading the Contractual Software into the working memory. In addition, the Customer is entitled to prepare and store a backup copy which is to be labeled as such. This may be used exclusively for archival purposes and may not be passed on to third parties. Simultaneous use of the original and the backup copy is not permitted. No further copies may be made. This also includes reproduction by the issue of the program code. Only one printout or copy may be made of the user manual or the other documentation. Any further copying of the Contractual Software and the User Manual or other supporting documentation is only allowed with the express permission of IBExpert.
4.4 The Customer is entitled to pass on the Contractual Software as a whole and in its original condition to a third party, provided that the third party agrees to the terms of these General Terms and Conditions Software. With transfer of the Contractual Software the usage right is transferred to the third party, who is solely entitled to use the Contractual Software pursuant to the terms and conditions of these General Terms and Conditions Software to the exclusion of the Customer. The Customer shall delete or destroy by other means all copies and partial copies of the Contractual Software. This also applies to backup copies. The Customer must notify IBExpert of the transfer of the Contractual Software immediately in writing, stating the name and address of the third party.
4.5 The Customer is not entitled to rent out the Contractual Software or any part thereof for
4.6 IBExpert grants the Customer the same usage rights of any new program versions published, whether provided under a separate maintenance contract or under warranty, to the extent to which such rights are existing for the Contractual Software according to the terms of the Contract with which they are being used, or which are intended to be replaced by them. The provisions of sections IV. and V. shall apply mutatis mutandis. The right of use of any licensed Contractual Software, which is technically replaced by new program versions shall expire within two weeks from the date when the Customer uses the supplied program versions productively, however no later than one calendar month after the Customer has received the supplied program versions. The Customer is entitled to make one copy each of the technically replaced software programs for archiving purposes.
5.1 The Customer is not entitled to process and/or copy the Contractual Software beyond the contractually stipulated use unless this is imperative for the purpose of debugging and if IBExpert is in default of eliminating the defect. In such case, the Customer is permitted to commission the elimination of defects only to a third party that is not in a competitive relationship with IBExpert, if it is to be feared that important program functions and operations may be disclosed by the elimination of the defect. Modifications introduced by the Customer during the elimination of defects must be recorded and notified to IBExpert.
5.2 The Customer is also prohibited from analyzing, reassembling or in any way whatsoever processing or modifying the Contractual Software. A retranslation into other code forms ("decompiling") as well as any other kinds of reverse engineering of the different implementation stages of the Contractual Software by the Customer shall not be permitted subject to the following provision: The Customer shall be authorized to decompile the object code only if such decompilation is necessary to achieve interoperability with other software programs, if he has not been provided with the required data and/or information, following a written request setting an adequate time limit, and provided that the decompilation work is limited to those parts of the Contractual Software that are necessary to establish interoperability with other software programs.
5.3 The Customer is not permitted to remove, alter or make illegible any property and copyright references, serial numbers, version numbers, stickers, labels or trademarks of IBExpert or other manufacturers contained in the Contractual Software as well as in the User Manual or any other documentation.
5.4 The commercial use of the Contractual Software for third parties by way of the so-called "Application Service Providing (ASP)" or "Software as a Service" (SaaS) is not allowed. Furthermore, any use of the Contractual Software beyond the limits stipulated herein, in particular in the case of non-approved simultaneous multiple use by more than one user, is considered in breach of contract. The Customer is obliged to inform of this IBExpert immediately. For any period of overuse not agreed in the Contract, the Customer undertakes to pay the lease fee for the Contractual Software calculated on the actual scope of use and according to the IBExpert price list with retroactive effect immediately upon receipt of the invoice. In the event that the Customer fails to give notice of such overuse and IBExpert succeeds in discovering the overuse, for example following an audit as described in paragraph 3.4, the Customer shall pay IBExpert liquidated damages for such unauthorized overuse to the amount of three times the fee that would have been payable for an authorized use of the Contractual Software by the Customer, according to the IBExpert price list. The Customer is free to prove that IBExpert suffered lesser damages.
6.1 The Contractual Software is supplied with a technical protection mechanism in the form of an electronic license control.
6.2 If IBExpert supplies the Contractual Software with a dongle, and this has a malfunction, the Customer may request a replacement dongle from IBExpert by returning the defective dongle. The replacement delivery is free of charge during the warranty period for the Contractual Software according to the following paragraph 7.2. Following expiry of the warranty period, a fee of EUR 65.00 plus VAT and shipping costs must be paid. In the event of theft or other loss of the dongle, the Customer shall not be entitled to a replacement.
6.3 Any circumvention of the technical protection measures is a violation of the rights of IBExpert and is, under certain circumstances, also liable to prosecution. In particular, the removal and/or bypass of the software protection program routine is prohibited. Only in cases where the software protection impairs or prevents a trouble-free use of the program and IBExpert, despite notification and detailed description of the fault, is not able or willing to eliminate the fault within a reasonable period of time, the software protection may be removed or evaded in order to ensure the operability of the Contractual Software. The burden of proof of the impaired or hindered usability lies with the Customer.
7.1 Statutory provisions apply to the Customer's rights in the case of material and legal defects (hereinafter defects) of the Contractual Software, unless otherwise stipulated in the following paragraphs.
7.2 The warranty period for the Contractual Software is one year. The one-year warranty period begins upon delivery of the Contractual Software to the Customer. The statutory warranty period will however apply if IBExpert has fraudulently concealed a defect or has accepted a guarantee for the quality of the Contractual Software.
7.3 IBExpert warrants that the Contractual Software, when used conformant to the contract, will comply with its performance description and does not contain defects which impair the suitability of the Contractual Software for the contractually agreed application more than insubstantially. Insignificant deviations from the specifications are not deemed to be a defect.
7.4 The Customer is to examine the Contractual Software, including the documentation, within eight (8) working days following delivery, in particular with regard to the completeness of the data carriers and user documentation, as well as the operational capability of basic program functions. Defects that are identified or which are identifiable must be reported in writing to IBExpert within a further eight (8) working days, quoting the order details and the invoice number. When notifying of any defects, the Customer shall specify and describe how the defect manifests itself, what are the effects and under what circumstances it occurs. Defects, which are not detectable in the scope of an orderly examination, must be notified within eight (8) working days after discovery in compliance with the notice requirements set forth above. In the case of a breach of the inspection and notification obligation, the Contractual Software shall be considered as approved.
7.5 A defect correctly reported by the Customer shall be removed by IBExpert by way of subsequent remedy, i.e. by rectification or replacement. In the first instance IBExpert has the right to choose in what form and manner a defect is removed by way of subsequent fulfillment. As far as is reasonably acceptable for the Customer, IBExpert shall be entitled to remediate the defect by supplying the Customer with a new version of the Contractual Software (e.g. as an update or maintenance release/patch) which no longer contains or eliminates the notified defect. As far as can be reasonably expected by the Customer, IBExpert shall be entitled to remediate the defect by supplying the Customer with a new version of the Contractual Software (e.g. as an update or maintenance release/patch) which no longer contains or eliminates the notified defect.
7.6 If the subsequent rectification is not successful within a reasonable period of time, the Customer will set IBExpert a further reasonable period of grace for the rectification, in so far as the Customer's deadline is reasonable and the remedy not ultimately declined by IBExpert. If IBExpert cannot remediate the defect within the period of grace, the Customer may withdraw from the contract or reduce the purchase price, and possibly claim damages in lieu of performance or reimbursement of expenses. Following unsuccessful expiration of the period of grace the Customer must give notice within a reasonable period of time, whether he still requires subsequent rectification or if he wishes to his assert his rights above. A right of withdrawal does not however exist in the case of an insignificant defect. With the declaration of withdrawal or reduction the Customer's right to delivery of the flawless Contractual Software is no longer applicable.
7.7 IBExpert shall not be held liable under a warranty if defects of the Contractual Software have occurred following alteration to the conditions of application and operation, and following installation and user errors, unless attributable to errors in the User Manual or other documentation; following interference with the Contractual Software such as alterations, modifications, connections with other programs, and/or after any use in breach of contract, unless the Customer proves that the errors already existed on transfer of the Contractual Software, or are in no causal relation with the aforementioned events.
7.8 In the case of a justified withdrawal, IBExpert is entitled to demand an appropriate compensation for the usage of the Contractual Software sustained in the past by the Customer up to the time of the rescission. This compensation for usage is determined based on a four-year cumulative usage period of the Contractual Software, allowing a reasonable deduction for the impairment of the Contractual Software due to the defect which led to the withdrawal from the contract.
7.9 If the Customer has held IBExpert liable for any warranty claims, and it transpires that there either is no defect or the claimed defect is based on a circumstance which IBExpert is under no obligation to guarantee, then the Customer, provided he has at least negligently caused the claim against IBExpert, is to replace all resulting costs to IBExpert.
8.1 As far as IBExpert allows Customers to use software programs gratuitously ("Freeware"), the provisions of this section VIII. shall apply. Furthermore, these provisions shall apply mutatis mutandis to the transfer of new program versions of such Freeware (e.g. patches, bug fixes, updates, upgrades, etc.) as well as to any user documentation of the Freeware made available for downloading on IBExpert's homepage.
8.2 IBExpert shall provide the Freeware to the Customer in machine-readable form (Object Code) together with an electronic user manual and, if available, other documentation (e.g. operating instructions, help files, other technical information and documentation). The transfer of the Freeware und the associated user documentation shall be realized by data telecommunication ("download") or by transfer of a data carrier at the discretion of IBExpert.
8.3 The user manual or other documentation of the Freeware describes in detail which features and benefits can be achieved by the Freeware when used as stipulated in the Contract ("Performance Description"). Solely the relevant Performance Description is, in this respect, significant with regard to the quality of the Freeware and its intended application. Public statements, recommendations or advertisements shall not constitute any indication of the quality of the Contractual Software.
8.4 IBExpert grants the Customer the non-exclusive and non-transferable right to use the Freeware supplied in the object code for an unlimited period of time in accordance with the provisions of these Contractual Terms.
8.5 The Customer shall not be entitled, without the prior written consent of IBExpert, to transfer the copy of the Freeware provided, as well as the associated user manual and other documentation - if applicable - for use to any third party nor to sell, lease or lend them to third parties. In particular, the Customer is not allowed to transfer the Freeware to third parties against payment of a charge, e.g. by way of the so-called "Application Service Providing (ASP)" or "Software as a Service" (SaaS). Otherwise the above provisions in sections 4.2, 4.3 and V. for using the Contractual Software shall apply mutatis mutandis to the use of Freeware.
8.6 In connection with the transfer of Freeware, IBExpert shall be liable only for intent and gross negligence. Any further claims for damage and compensation of expenses of the Customer for whatever legal reason, in particular due to infringement of duties arising from the relationship under the law of obligations and from tortuous acts, shall be excluded.
8.7 IBExpert shall only be liable for material and legal defects of the Freeware if IBExpert has fraudulently concealed a material and/or legal defect. Any further liability or warranty for material or legal defects shall be excluded.
8.8 In as far as no deviating regulations have been provided for in this section VIII., the provisions of the General Terms and Conditions shall apply to the licensing of Freeware mutatis mutandis.
The general provisions regarding e.g. the conclusion of the contract, delivery, remuneration and terms of payment, retention of title and reservation of rights, liability, statute of limitation, place of jurisdiction, etc. contained in IBExpert's General Terms and Conditions shall apply mutatis mutandis to contractual relationships within the framework of the transfer of software, unless these General Terms and Conditions Maintenance contain any deviating provisions.
General Terms and Conditions Software - Status: 01.01.2022
End Part 3
(General Terms and Conditions Maintenance)
The following terms and conditions of IBExpert Ltd ("IBExpert") for the maintenance of software ("General Terms and Conditions Maintenance") apply to all contractual relations with customers in connection with the provision of software maintenance and support services and are an integral part of the contract unless otherwise agreed in writing in an individual agreement between IBExpert and the customer.
The General Terms and Conditions for Maintenance supplement IBExpert's supplement IBExpert's Standard Business Terms ("General Terms and Conditions") and IBExpert's Terms of Contract for the Transfer of Software ("General Terms and Conditions for Software Lease"), both of which are an integral part of the contract in addition to the General Terms and Conditions for Maintenance.
2.1 IBExpert shall assume the maintenance of the software programs described in more detail in the order confirmation. Unless otherwise agreed, IBExpert shall perform the following maintenance services for these software programs:
2.1.1 Brief telephone consulting and support for all questions related to operation, installation and other application support via email ("Support").
2.1.2 Supply of the respective program version currently marketed by IBExpert by remote data transfer (Internet download).
2.2 The scope of the aforementioned maintenance services is described in detail below. All other services not indicated below shall not be owed by IBExpert, but must be ordered and paid for separately.
2.3 IBExpert shall endeavor to adapt the software programs to be maintained to changing legal regulations within the framework of IBExpert's operational and economic capabilities and within a reasonable period of time. This shall not apply in the case that such adaptation involves unreasonable work for IBExpert. In such a case IBExpert shall effect the adaptation only in return for appropriate additional remuneration.
3.1 IBExpert shall perform electronic brief consulting and support services related to all questions regarding operation, installation, application problems or other cases of difficulties related to program operations of the software programs to be maintained. The brief consulting service is available to the customer by email during IBExpert's normal working hours outside the statutory public holidays of Malta from Monday to Friday from 9:00 am to 5:00 pm.
3.2 Consulting and/or support in accordance with the above clause is any problem-related answer on the part of IBExpert to the description of a software-related problem of the customer in connection with the software programs described in more detail in the order confirmation. The reply to the respective inquiry will be made by email.
4.1 IBExpert shall provide the customer with all new program versions of the software programs to be maintained via electronic data interchange (Internet download) provided that they are currently marketed by IBExpert and are available. This shall not apply to extensions of the software programs to be maintained, which IBExpert offers and markets separately as a new and independent product, and to new developments of the software programs with identical or similar functions on a different technological base.
4.2 The new program versions are transferred, at the discretion of IBExpert on a data medium or via remote data transmission (Internet download). If IBExpert transfers the new program version to the customer via remote data transmission, IBExpert shall endeavor to ensure the availability of the new version on a server for downloading by the customer. The functional scope of the new version is detailed in the documentation provided, and/or on other separate information from IBExpert.
5.1 At the customer's request, IBExpert shall perform further services which are connected with the software programs to be maintained, but which are not included in the services described in the previous subsections, in return for an additional remuneration to be agreed upon. This shall apply in particular to the following services if they cannot be provided by the brief telephone consulting and support ("Support"):
5.1.1 individual elimination and analysis of defects in the software programs to be maintained;
5.1.2. local services by IBExpert at the customer's site, in particular work on the customer's IT system;
5.1.3 services in connection with software programs not covered by this contract;
5.1.4 services that are performed outside IBExpert's normal working hours at the request of the customer;
5.1.5 services that are necessary due to improper handling of the maintained software and/or breaches of obligations on the part of the customer, such as failure to comply with user manuals, irrespective of whether they are due to the customer, his vicarious agents or other persons not authorized by IBExpert;
5.1.6 services that become necessary due to force majeure or other circumstances for which IBExpert is not responsible;
5.1.7 services that are necessary in connection with the installation of a new program version purchased by the customer, especially instruction and training regarding these software programs;
5.1.8 services resulting from altered or new customer requirements. These include in particular advising the customer on the adaptation and creation of application software and/or on general computer-technical issues that are not related to the software programs to be maintained;
5.1.9 updating of earlier customer-specific customizations, settings and extensions that are necessary for their preservation after any change of the version.
5.2 IBExpert shall not be required to perform services that are not part of the subject matter of this contract, in particular the above-mentioned services. However, IBExpert shall endeavor within the range of its operational capabilities to support the customer to the extent necessary for reasonable economic use of the software programs being maintained.
6.1 The customer shall support IBExpert in every respect in fulfilling the contractual maintenance services free of charge. In particular,
6.2 The above-mentioned obligations to cooperate are major contractual duties. In the event of repeated or serious breach of obligations, IBExpert is entitled to terminate the service contract by giving two weeks' notice to the end of the month.
7.1 The amount of the payment to be made by the customer for the maintenance services is based on the order confirmation and/or IBExpert's prevailing current price list. All prices are quoted net, without any deductions and exclusive of the statutory value added tax.
7.2 IBExpert retains the right to adjust the fee rates for the provision of maintenance services to meet the competitive and business management conditions and requirements. IBExpert shall be entitled to adjust the maintenance fee by prior written notification. Such adjustment shall be permissible at the earliest 12 months after conclusion of the maintenance contract, and it must not exceed the remuneration of the preceding 12 month-period by more than 10 %.
7.3 If errors occur during the warranty period of a software program transferred and to be maintained by IBExpert and this error falls under IBExpert's warranty, the services performed within the framework of this maintenance agreement in connection with the elimination of the error shall not be charged to the customer or be partially reimbursed, in so far as the customer explicitly claims subsequent remedy in accordance on his legal warranty claim.
7.4 Invoicing shall be carried out in one amount upon completion of the maintenance agreement for the remaining term until 31 December of the calendar year and is due for payment immediately. Thereafter further invoicing shall be carried out as of 1st January of each calendar year in one amount and is due for payment immediately.
7.5 Support services offered at actual time expenditure will be charged as prepaid Standard Hotline packages, and are billed on a prepayment basis.
8.1 As far as IBExpert is obliged to supply new program versions to the customer, the warranty provisions stipulated in the Terms and Conditions for Software shall apply mutatis mutandis in case of defectiveness of these software programs.
8.2 For the consulting and support services provided within the framework of the "Support", IBExpert shall be liable for the punctual and proper implementation, but not for economic or other performance success aims of the customer.
8.3 Should IBExpert provide consulting and support services as part of this support, based on files supplied by the customer, IBExpert is not liable for the correctness or for the completeness of the data. The customer takes full responsibility for the decision as to whether this data is accurate and complete and whether its use is appropriate for its intended purposes. This also applies if IBExpert has reorganized or modified such data as part of its technical application support (para. 2.1). IBExpert accepts no liability, either direct or indirect, for damages of any kind arising from the use of this information. Paragraph 7 of the General Conditions of IBExpert (Terms and Conditions Services) and the corresponding subsequent provisions remain unaffected.
9.1 The Maintenance Contract has a duration until the end of the year following the conclusion of the contract and it shall be extended from year to year for another year unless notice of termination is given in writing by posted letter three months' prior to the lapse of the initial contract term or of the extended contract term. A transmission of the notice of termination by telecommunication services or electronic means (such as e.g. by facsimile transmission or email) is not sufficient to comply with the afore-mentioned written form stipulation.
9.2 The right of extraordinary termination for compelling reasons shall not be affected. In particular IBExpert shall have the right of extraordinary termination if the customer is in default of payment of the fee by more than two (2) months.
10.1 IBExpert shall grant the customer the rights of use of the new program versions transferred within the framework of this maintenance agreement to the extent that they exist with respect to the software programs with which they are properly used or which are to be replaced by them. The Terms and Conditions for Software Lease shall apply mutatis mutandis.
10.2 The right of use of software programs that are technically replaced by the new program versions shall expire within two weeks after the customer productively utilizes the supplied program versions, but at the latest one calendar month after receipt of the supplied program versions by the customer. The customer has the right to make one copy of the technically replaced software programs in each case for archiving purposes.
The general provisions regarding e.g. the conclusion of the contract, delivery, remuneration and terms of payment, retention of title and reservation of rights, liability, statute of limitation, place of jurisdiction, etc. contained in IBExpert's General Terms and Conditions shall apply mutatis mutandis to contractual relationships within the framework of performance of maintenance services unless these General Terms and Conditions Maintenance contain any diverging provisions. If new program versions are transferred to the customer within the provisions of the maintenance services, IBExpert's Contract Terms for the Lease of Software (General Terms and Conditions Software Lease) shall apply mutatis mutandis.
General Terms and Conditions Maintenance Status: 01.01.2022
End Part 4
Soundex, Cologne Phonetics, PSQL, Free Pascal and Visual C++ in a practical benchmark
IBExpert Ltd - Technical White Paper
Firebird applications have been able to extend the database engine with external functions for many years. Older installations commonly used UDFs (User Defined Functions). Modern Firebird versions provide UDRs (User Defined Routines), a substantially better integrated architecture.
This white paper follows the transition from UDF to UDR through a practical example: phonetic name matching using Soundex, a German-adapted Soundex variant, Cologne Phonetics, and distance and similarity functions. The same functionality was implemented as Firebird PSQL stored functions, a native Lazarus/Free Pascal UDR, and a native Microsoft Visual C++ 2022 UDR.
The most surprising finding was that programming language was not the dominant performance factor. Once Free Pascal and C++ used a comparable low-level strategy, optimized FPC was typically only about 10 to 25 percent behind Visual C++.
UDFs were a proven way to move calculations into external DLLs or shared libraries across many Firebird generations. The old UDF interface, however, belongs to an earlier generation of API design.
UDRs are the modern successor. SQL still calls native code, but integration uses Firebird's modern plugin and object-oriented API, with cleaner handling of data types, NULL values, metadata, character sets and routine lifecycle. For new Firebird 5 extensions, UDR should therefore be regarded as the natural replacement for classic UDFs.
Many algorithms can be implemented entirely as Firebird PSQL stored functions. This greatly simplifies deployment: no extra DLL, no Linux shared library and no platform-specific binary.
PSQL is particularly attractive when easy installation, backup/restore and platform independence matter more than maximum computational throughput. The real question is not whether PSQL can solve the problem, but whether it is fast enough for the expected call volume.
Exact string comparisons are often insufficient for names. Klemt, Klemmt, Klempt and Klemp are technically four different strings, but may all be relevant when searching for the same person.
Phonetic algorithms map names to codes that reflect pronunciation more than exact spelling, making typing errors, historical spellings and variants easier to detect.
Soundex normally creates a short code consisting of an initial letter and digits representing similar consonant groups. It is simple and fast, but was primarily designed for English names.
Our project therefore implemented SOUNDEX and SOUNDEX_DE. The German variant additionally normalizes forms such as Ä/AE, Ö/OE, Ü/UE, ß/SS and common letter combinations.
Cologne Phonetics is often more appropriate for German names. It uses context-sensitive rules and produces a variable-length digit sequence.
Klemt → 4562, Klemmt → 4562, Klempt → 45612, Klemp → 4561. Klemt and Klemmt become phonetically identical, while the other variants remain very close.
COLOGNE_DISTANCE first calculates Cologne Phonetics for both names and then the Levenshtein distance between the codes. A distance of 0 means identical; 1 means one insertion, deletion or replacement is required.
PHONETIC_SIMILARITY converts this into an easier-to-use value from 0 to 100. In our example Klemt/Klemmt returns 100, Klemt/Klempt 80 and Klemt/Klemp 75.
The five functions SOUNDEX, SOUNDEX_DE, COLOGNE_PHONETIC, COLOGNE_DISTANCE and PHONETIC_SIMILARITY were implemented in PSQL, as a Lazarus/FPC UDR, and as a Visual C++ UDR.
Before performance testing, 10,000 test rows were checked. The final versions produced zero mismatches for all five functions. Identical checksums also confirmed that the implementations processed the same results.
PSQL proved surprisingly practical for the simpler phonetic functions. As computational work increases, the native UDR advantage becomes much larger, especially for distance and similarity calculations.
|
Function |
Native UDR (typical) |
PSQL (typical) |
Interpretation |
|
SOUNDEX |
~0.04 s |
~0.8 s |
Native clearly faster |
|
SOUNDEX_DE |
~0.05 s |
~0.9 s |
Native clearly faster |
|
COLOGNE_PHONETIC |
~0.04 s |
~1.6 s |
Native clearly faster |
|
COLOGNE_DISTANCE |
~0.06 s |
~4.5 s |
Native substantially faster |
|
PHONETIC_SIMILARITY |
~0.06 s |
~6.5 s |
Native substantially faster |
The absolute values come from different benchmark forms and should not be interpreted as a pure microbenchmark ratio. The important point is that PSQL is functional and quite capable for simpler tasks, while native UDRs scale much better as procedural computation increases.
The first FPC version used convenient UnicodeString processing, UnicodeUpperCase and general string operations. The C++ implementation worked largely on UTF-8 bytes directly. C++ therefore initially appeared four to five times faster in some tests.
This was not a fair compiler-only comparison: the implementations were doing different amounts of internal work.
The FPC version was rewritten to use the same low-level strategy: UTF-8 remains byte-oriented in the hot path, German special characters are normalized using their UTF-8 sequences, ASCII uppercasing is performed directly, temporary string operations are reduced, and Cologne/Levenshtein use compact buffers.
The SQL interface and results remained unchanged.
|
Function |
Original FPC |
FPC Fast UTF-8 |
Improvement |
|
SOUNDEX |
~136 ms |
~40 ms |
~3.4× |
|
SOUNDEX_DE |
~79 ms |
~47 ms |
~1.7× |
|
COLOGNE_PHONETIC |
~152 ms |
~43 ms |
~3.5× |
|
COLOGNE_DISTANCE |
~269 ms |
~62 ms |
~4.3× |
|
PHONETIC_SIMILARITY |
~271 ms |
~62 ms |
~4.4× |
Most of the performance gain was therefore achieved without changing programming language.
|
Function |
Visual C++ 2022 |
Optimized FPC |
Approx. C++ lead |
|
SOUNDEX |
~34 ms |
~40 ms |
~18% |
|
SOUNDEX_DE |
~38 ms |
~47 ms |
~24% |
|
COLOGNE_PHONETIC |
~38 ms |
~43 ms |
~13% |
|
COLOGNE_DISTANCE |
~51 ms |
~62 ms |
~22% |
|
PHONETIC_SIMILARITY |
~52 ms |
~62 ms |
~19% |
With comparable implementations, the gap fell from an apparent factor of four or five to typically about 10 to 25 percent.
The Object Pascal binding is compact from the developer's perspective. Firebird.pas bundles the important interfaces and type declarations into a Pascal unit, keeping a small Lazarus UDR project easy to understand and familiar to Delphi/Lazarus developers.
The C++ UDR uses Firebird's C++ helper infrastructure, including UdrCppEngine.h, Message.h, Interface.h, ibase.h and additional include files and preprocessor helpers.
These are mainly compile-time dependencies. The finished DLL does not simply require all those headers at runtime. Pascal packages many declarations into one unit, while C++ distributes the API across headers, templates and macros.
PSQL is platform-neutral inside the database. Native UDRs must be built for the target platform, typically a DLL on Windows and a shared library on Linux. The SQL contract can remain the same, but the binary must match the operating system, architecture and Firebird server.
For moderate call volumes and maximum simplicity, PSQL is attractive. For high call volumes or computationally intensive algorithms, a native UDR provides substantial headroom.
Where Delphi/Lazarus/FPC expertise already exists, our measurements provide no reason to switch to C++ solely out of performance concerns. C++ remains an excellent choice where the relevant expertise and build infrastructure already exist.
The project started with a question: how should classic Firebird UDF functionality be modernized for Firebird 5? This led to a comparison of UDR and PSQL, and eventually to a direct test of Free Pascal and Visual C++.
The most important result is not one millisecond figure. Architecture, algorithm and data representation often dominate language choice. Our first Pascal implementation was correct but used convenient general Unicode abstractions. The C++ version worked closer to the bytes actually required and was initially dramatically faster. Once the same principles were applied to Free Pascal, most of the difference disappeared.
For developers with many years of Delphi or Free Pascal experience, this is a notable result: well-written Pascal remains highly competitive native code. Visual C++ was still somewhat faster in our test, but the remaining gap was closer to roughly 10 to 25 percent than to a factor of four or five.
Firebird PSQL was also a positive surprise. Not every function justifies a native library. Simple phonetic functions can offer an attractive balance of performance, maintainability and effortless deployment as stored functions. Native UDRs become particularly valuable when high call volumes and more complex calculations occur together.
The practical conclusion is therefore: choose the right algorithm and data representation first, then choose the deployment strategy, and only after that treat the programming language itself as a performance factor.
The complete source code is intentionally not reproduced in this white paper, keeping the document readable for managers and users as well as developers.
Demo projects for Firebird PSQL, Lazarus/Free Pascal and Visual Studio/C++ can be provided on request. Benchmark values are snapshots of a specific environment: hardware, Firebird version, compiler options, data distribution, cache state and server load can all affect absolute timings. Reproducible test data, identical results and repeated runs matter more than a single best time.
Soundex, Kölner Phonetik, PSQL, Free Pascal und Visual C++ im Praxistest
IBExpert Ltd - Technical White Paper
Firebird-Anwendungen können die Datenbank-Engine seit vielen Jahren um externe Funktionen erweitern. In älteren Installationen geschah dies häufig mit UDFs (User Defined Functions). Moderne Firebird-Versionen stellen dafür mit UDRs (User Defined Routines) eine deutlich besser integrierte Architektur bereit.
Dieses White Paper beschreibt den Weg von UDF zu UDR anhand eines praktischen Beispiels: phonetische Namensvergleiche mit Soundex, einer deutsch angepassten Soundex-Variante, Kölner Phonetik sowie Distanz- und Ähnlichkeitsfunktionen. Dieselben Funktionen wurden als Firebird-PSQL-Stored-Functions, als native UDR mit Lazarus/Free Pascal und als native UDR mit Microsoft Visual C++ 2022 implementiert.
Der überraschendste Befund: Nicht die Programmiersprache war der wichtigste Performancefaktor. Nachdem Free Pascal und C++ weitgehend denselben Low-Level-Algorithmus verwendeten, lag die optimierte FPC-Version typischerweise nur noch etwa 10 bis 25 Prozent hinter Visual C++.
UDFs waren über viele Firebird-Generationen ein bewährter Weg, Berechnungen in externe DLLs bzw. Shared Libraries auszulagern. Die alte UDF-Schnittstelle stammt jedoch aus einer früheren Generation des API-Designs.
UDRs sind der moderne Nachfolger. SQL ruft weiterhin nativen Code auf, die Integration erfolgt jedoch über Firebirds moderne Plugin- und Objekt-API. Datentypen, NULL-Behandlung, Metadaten, Zeichensätze und Lebenszyklus sind sauberer eingebunden. Für neue Erweiterungen unter Firebird 5 sollte eine UDR daher als natürlicher Ersatz für klassische UDFs betrachtet werden.
Viele Algorithmen lassen sich vollständig als Firebird Stored Function in PSQL implementieren. Das vereinfacht die Verteilung erheblich: keine zusätzliche DLL, keine Linux-Shared-Library und keine plattformspezifische Binärdatei.
PSQL ist besonders interessant, wenn einfache Installation, Backup/Restore und Plattformunabhängigkeit wichtiger sind als maximale Rechenleistung. Entscheidend ist nicht, ob PSQL eine Aufgabe lösen kann, sondern ob seine Geschwindigkeit für das konkrete Aufrufvolumen ausreicht.
Exakte Stringvergleiche sind bei Namen oft unzureichend. Klemt, Klemmt, Klempt und Klemp sind technisch vier unterschiedliche Zeichenketten, können aber bei einer Personensuche zusammengehören.
Phonetische Algorithmen bilden Namen auf Codes ab, die sich stärker an der Aussprache als an der exakten Schreibweise orientieren. Dadurch lassen sich Tippfehler, historische Schreibweisen und Varianten besser erkennen.
Soundex erzeugt typischerweise einen kurzen Code aus einem Anfangsbuchstaben und Ziffern für ähnlich klingende Konsonantengruppen. Das Verfahren ist einfach und schnell, wurde jedoch primär für englische Namen entwickelt.
Im Projekt wurden deshalb SOUNDEX und SOUNDEX_DE umgesetzt. Die deutsche Variante normalisiert unter anderem Ä/AE, Ö/OE, Ü/UE, ß/SS sowie typische Buchstabenkombinationen.
Für deutsche Namen ist die Kölner Phonetik häufig geeigneter. Sie arbeitet mit kontextabhängigen Regeln und erzeugt eine Ziffernfolge variabler Länge.
Klemt → 4562, Klemmt → 4562, Klempt → 45612, Klemp → 4561. Klemt und Klemmt werden damit direkt phonetisch identisch; die anderen Varianten liegen nur geringfügig entfernt.
COLOGNE_DISTANCE berechnet zunächst für beide Namen die Kölner Phonetik und anschließend die Levenshtein-Distanz der Codes. 0 bedeutet identisch; 1 bedeutet eine notwendige Einfügung, Löschung oder Ersetzung.
PHONETIC_SIMILARITY übersetzt dies in einen Wert von 0 bis 100. In unserem Beispiel ergeben Klemt/Klemmt 100, Klemt/Klempt 80 und Klemt/Klemp 75.
Die fünf Funktionen SOUNDEX, SOUNDEX_DE, COLOGNE_PHONETIC, COLOGNE_DISTANCE und PHONETIC_SIMILARITY wurden als PSQL, als Lazarus/FPC-UDR und als Visual-C++-UDR umgesetzt.
Vor dem Performancevergleich wurden 10.000 Testdatensätze geprüft. In der finalen Version gab es bei allen fünf Funktionen 0 Abweichungen. Identische Checksums stellten zusätzlich sicher, dass alle Implementierungen dieselben Ergebnisse verarbeiteten.
PSQL erwies sich bei den einfachen phonetischen Funktionen als überraschend brauchbar. Mit zunehmender Rechenarbeit wächst der Vorteil nativer UDRs deutlich, besonders bei Distanz- und Similarity-Berechnungen.
|
Funktion |
Native UDR (typisch) |
PSQL (typisch) |
Einordnung |
|
SOUNDEX |
~0,04 s |
~0,8 s |
Native deutlich schneller |
|
SOUNDEX_DE |
~0,05 s |
~0,9 s |
Native deutlich schneller |
|
COLOGNE_PHONETIC |
~0,04 s |
~1,6 s |
Native deutlich schneller |
|
COLOGNE_DISTANCE |
~0,06 s |
~4,5 s |
Native sehr deutlich schneller |
|
PHONETIC_SIMILARITY |
~0,06 s |
~6,5 s |
Native sehr deutlich schneller |
Die absoluten Zeiten stammen aus unterschiedlichen Benchmarkformen und sind deshalb keine reine Mikrobenchmark-Ratio. Die Aussage bleibt: PSQL ist funktional und bei einfachen Aufgaben durchaus schnell; native UDRs skalieren bei intensiver Berechnung erheblich besser.
Die erste FPC-Version verwendete UnicodeString, UnicodeUpperCase und allgemeine Stringoperationen. Die C++-Version arbeitete dagegen weitgehend direkt auf UTF-8-Bytes. Im ersten Test erschien C++ dadurch teilweise vier- bis fünfmal schneller.
Das war kein fairer reiner Compilervergleich: Die Implementierungen verrichteten intern unterschiedlich viel Arbeit.
Die FPC-Version wurde auf denselben Low-Level-Ansatz umgebaut: UTF-8 bleibt im Hot Path byteorientiert, deutsche Sonderzeichen werden über ihre UTF-8-Sequenzen normalisiert, ASCII-Großschreibung erfolgt direkt, temporäre Stringoperationen werden reduziert und Cologne/Levenshtein verwenden kompaktere Buffer.
Die SQL-Schnittstelle und die Ergebnisse blieben unverändert.
|
Funktion |
FPC ursprünglich |
FPC Fast UTF-8 |
Beschleunigung |
|
SOUNDEX |
~136 ms |
~40 ms |
~3,4× |
|
SOUNDEX_DE |
~79 ms |
~47 ms |
~1,7× |
|
COLOGNE_PHONETIC |
~152 ms |
~43 ms |
~3,5× |
|
COLOGNE_DISTANCE |
~269 ms |
~62 ms |
~4,3× |
|
PHONETIC_SIMILARITY |
~271 ms |
~62 ms |
~4,4× |
Der größte Performancegewinn entstand also ohne Wechsel der Programmiersprache.
|
Funktion |
Visual C++ 2022 |
Optimiertes FPC |
C++-Vorsprung ungefähr |
|
SOUNDEX |
~34 ms |
~40 ms |
~18 % |
|
SOUNDEX_DE |
~38 ms |
~47 ms |
~24 % |
|
COLOGNE_PHONETIC |
~38 ms |
~43 ms |
~13 % |
|
COLOGNE_DISTANCE |
~51 ms |
~62 ms |
~22 % |
|
PHONETIC_SIMILARITY |
~52 ms |
~62 ms |
~19 % |
Mit vergleichbarer Implementierung schrumpfte der Abstand von scheinbar Faktor vier oder fünf auf typischerweise etwa 10 bis 25 Prozent.
Die Object-Pascal-Anbindung an Firebird ist für den Entwickler kompakt. Firebird.pas bündelt die wesentlichen Interfaces und Typdeklarationen in einer Pascal-Unit. Dadurch bleibt ein kleines Lazarus-UDR-Projekt übersichtlich und für Delphi-/Lazarus-Entwickler vertraut.
Die C++-UDR verwendet Firebirds C++-Hilfsinfrastruktur mit UdrCppEngine.h, Message.h, Interface.h, ibase.h und weiteren Include-Dateien sowie Preprocessor-Hilfen.
Das sind überwiegend Compile-Time-Abhängigkeiten. Die fertige DLL benötigt nicht einfach alle diese Header zur Laufzeit. Pascal bündelt viele Deklarationen in einer Unit; C++ verteilt die API stärker auf Header, Templates und Makros.
PSQL ist innerhalb der Datenbank plattformneutral. Native UDRs müssen für die Zielplattform gebaut werden: typischerweise DLL unter Windows und Shared Library unter Linux. Der SQL-Vertrag kann gleich bleiben, die Binärdatei muss jedoch zu Betriebssystem, Architektur und Firebird-Server passen.
Für moderate Aufrufzahlen und maximale Einfachheit ist PSQL attraktiv. Für hohe Aufrufzahlen oder rechenintensive Algorithmen bietet eine native UDR deutliche Vorteile.
Wenn bereits Delphi-/Lazarus-/FPC-Know-how vorhanden ist, gibt es nach unseren Messungen keinen Grund, allein aus Performance-Angst auf C++ zu wechseln. C++ bleibt ebenso eine ausgezeichnete Wahl, wenn entsprechende Erfahrung und Build-Infrastruktur vorhanden sind.
Ausgangspunkt war die Frage, wie klassische Firebird-UDF-Funktionalität unter Firebird 5 sinnvoll modernisiert werden kann. Daraus entstand ein Vergleich von UDR und PSQL und schließlich ein direkter Test von Free Pascal und Visual C++.
Die wichtigste Erkenntnis ist nicht eine einzelne Millisekundenzahl: Architektur, Algorithmus und Datenrepräsentation dominieren häufig die Wahl der Sprache. Unsere erste Pascal-Implementierung war korrekt, verwendete aber komfortable allgemeine Unicode-Abstraktionen. Die C++-Implementierung arbeitete näher an den tatsächlich benötigten Bytes und war zunächst dramatisch schneller. Nachdem dieselben Prinzipien auf Free Pascal übertragen wurden, verschwand der größte Teil des Unterschieds.
Für Entwickler, die seit vielen Jahren mit Delphi oder Free Pascal arbeiten, ist das bemerkenswert: Gut geschriebener Pascal-Code ist auch heute konkurrenzfähiger nativer Code. Visual C++ blieb in unserem Test etwas schneller, aber der verbleibende Abstand lag eher im Bereich von etwa 10 bis 25 Prozent als bei Faktor vier oder fünf.
Gleichzeitig hat Firebird PSQL positiv überrascht. Nicht jede Funktion rechtfertigt eine native Bibliothek. Einfache phonetische Funktionen können als Stored Function eine attraktive Kombination aus Performance, Wartbarkeit und problemloser Verteilung bieten. Native UDRs werden dort besonders interessant, wo hohe Aufrufzahlen und komplexere Berechnungen zusammenkommen.
Die praktische Schlussfolgerung lautet deshalb: Zuerst den richtigen Algorithmus und die richtige Datenrepräsentation wählen, dann die passende Deployment-Strategie entscheiden – und erst danach die Programmiersprache als Performancefaktor bewerten.
Die vollständigen Quelltexte werden bewusst nicht im White Paper abgedruckt. So bleibt das Dokument auch für Entscheider und Anwender lesbar.
Demo-Projekte für Firebird PSQL, Lazarus/Free Pascal und Visual Studio/C++ können auf Anfrage bereitgestellt werden. Benchmarkwerte sind Momentaufnahmen: Hardware, Firebird-Version, Compileroptionen, Datenverteilung, Cache-Zustand und Serverlast beeinflussen absolute Zeiten. Reproduzierbare Testdaten, identische Ergebnisse und mehrere Messläufe sind deshalb wichtiger als eine einzelne Bestzeit.
Holger Klemt, September 2026
Die Zuverlässigkeit einer Firebird-Datenbank hängt nicht nur von Firebird selbst ab. Ebenso wichtig ist, dass das darunterliegende Betriebssystem und Storage-System Schreibvorgänge so ausführen und bestätigen, wie es die Datenbank erwartet.
Firebird ist darauf ausgelegt, Änderungen in einer definierten und sorgfältig abgestimmten Reihenfolge auf den Datenträger zu schreiben. Besonders bei aktiviertem Forced Writes stellt Firebird sicher, dass kritische Änderungen tatsächlich auf ein dauerhaftes Speichermedium geschrieben wurden, bevor nachfolgende Operationen als erfolgreich abgeschlossen gelten.
Moderne Betriebssysteme, RAID-Controller und Storage-Systeme versuchen Schreibzugriffe aus Performancegründen zu optimieren. Schreibvorgänge können beispielsweise gesammelt, zusammengefasst oder in einer anderen Reihenfolge an das physische Speichermedium weitergegeben werden.
Das ist grundsätzlich sinnvoll und bei normalem Dateizugriff meist unproblematisch. Für ein Datenbanksystem ist jedoch entscheidend, dass sogenannte Flush- oder Synchronisationsanforderungen zuverlässig bis zum tatsächlichen Datenträger durchgereicht werden.
Kritisch können deshalb zusätzliche Schichten zwischen Firebird und dem physischen Datenträger sein, zum Beispiel:
Das Problem entsteht insbesondere dann, wenn eine Schicht einen Schreibvorgang bereits als abgeschlossen meldet, obwohl die Daten noch nicht dauerhaft gespeichert wurden.
Bei einem Stromausfall, Kernel-Crash oder Hardwarefehler können dadurch bereits bestätigte Schreibvorgänge verloren gehen.
Besonders problematisch ist dies, wenn ein späterer Datenbankzustand bereits auf dem Datenträger angekommen ist, während dazugehörige vorherige Änderungen noch in einem Cache liegen. Dann können innerhalb der Datenbankdatei Informationen entstehen, die nicht mehr zueinander passen.
Genau die von Firebird vorgesehene Schreibstrategie soll solche Situationen verhindern. Voraussetzung dafür ist allerdings, dass Betriebssystem, Treiber, Controller und Storage die entsprechenden Synchronisations-anforderungen korrekt umsetzen.
Forced Writes abzuschalten kann deshalb zwar die Schreibperformance deutlich erhöhen, reduziert aber gleichzeitig eine wichtige Sicherheitsfunktion der Datenbank.
Linux-Dateisysteme wie ext4 verfügen über Mechanismen zur kontrollierten Reihenfolge und Absicherung von Schreibvorgängen. Das bedeutet jedoch nicht automatisch, dass jede darunterliegende Storage-Konfiguration dieselben Garantien bietet.
Sobald zusätzliche Cluster-, Mirror-, RAID- oder Virtualisierungsschichten beteiligt sind, muss sichergestellt werden, dass Flushes und Write Barriers auch tatsächlich bis zum persistenten Speichermedium weitergegeben werden.
Für Datenbanksysteme ist daher weniger entscheidend, ob Windows oder Linux eingesetzt wird, sondern ob die gesamte Storage-Kette die vom Datenbanksystem verlangten Garantien zuverlässig einhält.
In einem von uns betreuten Umfeld kam es vor einigen Jahren bei einem geschäftskritischen Firebird-System zu einem schweren Ausfall. Die Datenbank befand sich auf einer extern aufgebauten Linux-Cluster- und Storage-Lösung.
Nach einem Fehler waren nicht nur die produktive Datenbank, sondern auch die auf Storage-Ebene erzeugte Kopie betroffen. Die Wiederherstellung des Systems erforderte erhebliche Analyse- und Reparaturarbeiten.
Anschließend wurde die Architektur geändert. Seitdem erfolgt die Redundanz nicht mehr durch eine transparente Spiegelung der geöffneten Datenbankdatei, sondern durch eine Replikation auf Firebird-Ebene auf unabhängige Serversysteme. Diese Architektur ist dort seit vielen Jahren zuverlässig im Einsatz.
Für Firebird-Systeme bevorzugen wir deshalb möglichst einfache und nachvollziehbare Storage-Strukturen.
Redundanz und Hochverfügbarkeit sollten nach Möglichkeit so realisiert werden, dass zwei unabhängig arbeitende Firebird-Server jeweils ihre eigene lokale Datenbankdatei besitzen und die Synchronisation kontrolliert auf Datenbankebene erfolgt.
Das hat mehrere Vorteile:
Die konsequente Einhaltung der notwendigen Schreibreihenfolge erzeugt zwangsläufig eine gewisse Latenz. Gerade bei sehr schreibintensiven Anwendungen kann diese deutlich messbar sein.
Diese zusätzliche Latenz ist jedoch kein unnötiger Performanceverlust, sondern ein wesentlicher Bestandteil der Transaktionssicherheit.
Bei der Optimierung eines Firebird-Servers sollte deshalb nicht versucht werden, diese Sicherheits-mechanismen zu umgehen. Sinnvoller ist es, die Hardware und Storage-Architektur so auszulegen, dass synchrone Schreibvorgänge möglichst schnell ausgeführt werden können.
Eine schnelle Datenbank benötigt schnelles Storage. Eine zuverlässige Datenbank benötigt jedoch vor allem Storage, dessen Zusagen über erfolgreich gespeicherte Daten auch tatsächlich stimmen.