A method, including: executing, by a data processing system, a program (210, 260, 308, 310) that specifies operations (344, 403b, 706, 708), with the program (210, 260, 308, 310) being written in a language; accessing a translation file (120, 204, 326, 404, 502) that includes instructions for translating the language of the program (210, 260, 308, 310) into each language of a set of languages usable by a plurality of databases (110, 110a, 110b), wherein the translation file (120, 204, 326, 404, 502) specifies one or more operations (344, 403b, 706, 708) in the language of the program (210, 260, 308, 310) that are supported by the respective database (110, 110a, 110b) and further specifies the semantic meaning of the one or more supported operations (344, 403b, 706, 708) in the language of the respective database (110, 110a, 110b); determining, from the translation file (120, 204, 326, 404, 502), one or more of the operations (344, 403b, 706, 708) of the program (210, 260, 308, 310) that are unsupported by a given one of the databases (110, 110a, 110b); processing, by the program (210, 260, 308, 310), the one or more of the operations (344, 403b, 706, 708) that are unsupported by the given database (110, 110a, 110b); determining, from the translation file (120, 204, 326, 404, 502), one or more of the operations (344, 403b, 706, 708) of the program (210, 260, 308, 310) that are supported by the given database (110, 110a, 110b); and for the one or more of the operations (344, 403b, 706, 708) that are supported by the given database (110, 110a, 110b): translating, using the translation file (120, 204, 326, 404, 502), a portion (320, 322) of the program (210, 260, 308, 310) representing the one or more of the operations (344, 403b, 706, 708) that are supported by the given database (110, 110a, 110b) into the language of the given database (110, 110a, 110b); transmitting, to the database (110, 110a, 110b), the translated portion of the program (210, 260, 308, 310); and receiving, by the program (210, 260, 308, 310) and from the given database (110, 110a, 110b), data resulting from execution, within the given database (110, 110a, 110b), of the translated portion of the program (210, 260, 308, 310) representing the one or more of the operations (344, 403b, 706, 708) that are supported by the given database (110, 110a, 110b). executing, by a data processing system, a program (210, 260, 308, 310) that specifies operations (344, 403b, 706, 708), with the program (210, 260, 308, 310) being written in a language; accessing a translation file (120, 204, 326, 404, 502) that includes instructions for translating the language of the program (210, 260, 308, 310) into each language of a set of languages usable by a plurality of databases (110, 110a, 110b), wherein the translation file (120, 204, 326, 404, 502) specifies one or more operations (344, 403b, 706, 708) in the language of the program (210, 260, 308, 310) that are supported by the respective database (110, 110a, 110b) and further specifies the semantic meaning of the one or more supported operations (344, 403b, 706, 708) in the language of the respective database (110, 110a, 110b); determining, from the translation file (120, 204, 326, 404, 502), one or more of the operations (344, 403b, 706, 708) of the program (210, 260, 308, 310) that are unsupported by a given one of the databases (110, 110a, 110b); processing, by the program (210, 260, 308, 310), the one or more of the operations (344, 403b, 706, 708) that are unsupported by the given database (110, 110a, 110b); determining, from the translation file (120, 204, 326, 404, 502), one or more of the operations (344, 403b, 706, 708) of the program (210, 260, 308, 310) that are supported by the given database (110, 110a, 110b); and for the one or more of the operations (344, 403b, 706, 708) that are supported by the given database (110, 110a, 110b): translating, using the translation file (120, 204, 326, 404, 502), a portion (320, 322) of the program (210, 260, 308, 310) representing the one or more of the operations (344, 403b, 706, 708) that are supported by the given database (110, 110a, 110b) into the language of the given database (110, 110a, 110b); transmitting, to the database (110, 110a, 110b), the translated portion of the program (210, 260, 308, 310); and receiving, by the program (210, 260, 308, 310) and from the given database (110, 110a, 110b), data resulting from execution, within the given database (110, 110a, 110b), of the translated portion of the program (210, 260, 308, 310) representing the one or more of the operations (344, 403b, 706, 708) that are supported by the given database (110, 110a, 110b). translating, using the translation file (120, 204, 326, 404, 502), a portion (320, 322) of the program (210, 260, 308, 310) representing the one or more of the operations (344, 403b, 706, 708) that are supported by the given database (110, 110a, 110b) into the language of the given database (110, 110a, 110b); transmitting, to the database (110, 110a, 110b), the translated portion of the program (210, 260, 308, 310); and receiving, by the program (210, 260, 308, 310) and from the given database (110, 110a, 110b), data resulting from execution, within the given database (110, 110a, 110b), of the translated portion of the program (210, 260, 308, 310) representing the one or more of the operations (344, 403b, 706, 708) that are supported by the given database (110, 110a, 110b).