US20030041052A1 - Tool for converting SQL queries into portable ODBC - Google Patents

Tool for converting SQL queries into portable ODBC Download PDF

Info

Publication number
US20030041052A1
US20030041052A1 US09/934,887 US93488701A US2003041052A1 US 20030041052 A1 US20030041052 A1 US 20030041052A1 US 93488701 A US93488701 A US 93488701A US 2003041052 A1 US2003041052 A1 US 2003041052A1
Authority
US
United States
Prior art keywords
sql statement
recited
function
computer program
operable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US09/934,887
Other versions
US6877000B2 (en
Inventor
Kimberly Gajda
Bradley Hess
Robert Thorpe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US09/934,887 priority Critical patent/US6877000B2/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GAJDA, KIMBERLY LYNN, THORPE, ROBERT TOD, HESS, BRADLEY ALLAN
Publication of US20030041052A1 publication Critical patent/US20030041052A1/en
Application granted granted Critical
Publication of US6877000B2 publication Critical patent/US6877000B2/en
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2438Embedded query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation

Definitions

  • the present invention relates to the field of database management systems, and more particularly to converting Structured Query Language (SQL) queries into an Open Database Connectivity (ODBC) standard which is portable across various database management systems.
  • SQL Structured Query Language
  • ODBC Open Database Connectivity
  • Databases are computerized information storage and retrieval systems.
  • a Relational Database Management System (RDBMS) is a Database Management System (DBMS) which uses relational techniques for storing and retrieving data. Relational databases are organized into tables which consist of rows and columns of data. The rows are formally called tuples.
  • a database will typically have many tables and each table will typically have multiple tuples and multiple columns.
  • the tables are typically stored on random Access Storage Devices (DASD) such as magnetic or optical disk drives for semi-permanent storage.
  • DASD random Access Storage Devices
  • a DBMS is structured to accept commands to store, retrieve, and delete data.
  • One widely used and well known set of commands is called the Structured Query Language (SQL).
  • SQL Structured Query Language
  • the current SQL standard is known informally as SQL/92.
  • the definitions for SQL provide that a DBMS should respond to a particular query with a particular set of data given a specified database content, but the method that the DBMS uses to actually find the required information in the tables on the disk drives is left up to the DBMS.
  • the DBMS will optimize the method used to find the data requested in a query in order to minimize the computer time used and, therefore, the cost of doing the query.
  • a method for accessing data in a DBMS may be to embed SQL statements within an application program, e.g., COBOL, C, C++.
  • a DBMS may include one or more language specific pre-compilers.
  • a pre-compiler may be configured to process the language program source code including the embedded SQL statements. Processing may include removing SQL statements from the source code, checking the syntax of the SQL statements and inserting calls to private DBMS routines in substitution of the SQL statements. Since each DBMS may include one or more language specific pre-compilers, an application program with embedded SQL statements that is executed on more than one DBMS may have to be pre-compiled using the language specific pre-compiler for each DBMS.
  • an application program using SQL queries may be able to be executed on more than one DBMS without requiring the use of language specific pre-compilers through the use of the Open Database Connectivity (ODBC) standard.
  • ODBC Open Database Connectivity
  • the ODBC standard promulgated by MicrosoftTM, provides a standard database access Application Programming Interface (API) that is portable across multiple database management systems.
  • API Application Programming Interface
  • an application may utilize the ODBC interface to access data in various DBMSs using SQL. That is, the ODBC interface provides interoperability, where a single application program may access data from different DBMSs. This interoperability may allow an application developer to develop, compile, and ship an application program without targeting a specific DBMS.
  • the ODBC interface is more clearly described in ODBC 2.0 Programmer's Reference and SDK guide, Microsoft Press (1994), which is hereby incorporated herein by reference.
  • SQL Structured Query Language
  • ODBC Open Database Connectivity
  • a method for converting SQL statements into the ODBC standard may comprise the step of parsing the source code of an application comprising embedded SQL calls to identify one or more keywords, e.g., “EXEC SQL SELECT”, “EXEC SQL BEGIN DECLARE”, “EXEC SQL END DECLARE”.
  • the keywords may be used to identify SQL statements, e.g., SELECT ⁇ clause>FROM ⁇ clause>WHERE ⁇ clause>, as well as variables that are used to process the SQL statements.
  • a data structure associated with each variable may be built. These data structures may be used to store information required to process the SQL statements as well as store the results of processing the SQL statements.
  • the SQL statements may be evaluated. That is, the particular query requested and the operations to be performed to process the request may be determined.
  • the parameters in the SQL statements evaluated may be extracted where the parameters comprise data required to process the SQL statements, e.g., data that identifies the tables and columns from which the data is being selected in a SELECT SQL statement.
  • the SQL statements evaluated may then be matched with particular functions in a function library, i.e., a collection of functions stored in data files.
  • a function library i.e., a collection of functions stored in data files.
  • the SELECT SQL statement may correspond to a particular function in the function library.
  • These functions may store particular ODBC calls thereby enabling SQL statements to be converted into the ODBC standard.
  • the parameters extracted from the SQL statements as well as the addresses associated with the data structures built may be incorporated in the matched function.
  • a function call i.e., a call to that function, may be substituted for the corresponding SQL statement.
  • the new version of the application i.e., the application source code comprising the substituted function call, may be compiled and executed.
  • the function call may then be implemented resulting in the execution of the ODBC calls.
  • the results from the execution of the ODBC calls may be returned in the appropriate data structures based on the addresses of the data structures incorporated into the function.
  • FIG. 1 illustrates an embodiment of a database management system configured in accordance with the present invention
  • FIG. 2 illustrates an embodiment of a client configured in accordance with the present invention
  • FIGS. 3A and 3B is a flowchart of a method for converting Structured Query Language (SQL) queries into an Open Database Connectivity (ODBC) standard.
  • SQL Structured Query Language
  • ODBC Open Database Connectivity
  • FIG. 1 Database System
  • FIG. 1 illustrates one embodiment of the present invention of a database system 100 .
  • System 100 may comprise a client 110 coupled to a server 130 via a network 120 .
  • Network 120 may be a Local Area Network (LAN), e.g., Ethernet, Token Ring, ARCnet, or a Wide Area Network (WAN), e.g., Internet.
  • Server 130 may comprise a Database Management System (DBMS) 140 configured to use relational techniques for storing and retrieving data from a relational database 150 .
  • Relational database 150 may be organized into tables which consists of rows and columns of data where the rows are commonly referred to as tuples. It is noted that database system 100 may comprise any number of clients 110 as well as any number of servers 130 and databases 150 and that FIG.
  • DBMS Database Management System
  • connection between client 110 and network 120 and between network 120 and server 130 may be any medium type, e.g., wireless, wired.
  • client 110 may be any type of device, e.g., wireless, Personal Digital Assistant (PDA), cell phone, personal computer system, workstation, Internet appliance, configured with the capability of connecting to network 120 and consequently communicating with server 130 .
  • database system 100 may be any type of system that has at least one server 130 and at least one client 110 and that FIG. 1 is not to be limited in scope to any one particular embodiment.
  • a database application of client 110 may issue Structured Query Language (SQL) statements to server 130 that are commands to store, retrieve or delete data stored in relational database 150 .
  • SQL Structured Query Language
  • These SQL statements may be converted into the ODBC standard as described further hereinbelow in conjunction with FIGS. 3A and 3B. By converting the SQL statements into the ODBC standard, the application may be portable across various database management systems. A detailed description of client 110 is provided below.
  • FIG. 2 Hardware Configuration of Client
  • FIG. 2 illustrates a typical hardware configuration of client 110 which is representative of a hardware environment for practicing the present invention.
  • Client 110 has a central processing unit (CPU) 210 coupled to various other components by system bus 212 .
  • An operating system 240 runs on CPU 210 and provides control and coordinates the function of the various components of FIG. 2.
  • An application 250 in accordance with the principles of the present invention runs in conjunction with operating system 240 and provides output calls to operating system 240 where the output calls implement the various functions or services to be performed by application 250 .
  • Application 250 may include for example, a conversion tool configured to convert SQL statements into the Open Database Connectivity (ODBC) standard as described in FIGS. 3A and 3B.
  • ODBC Open Database Connectivity
  • Read only memory (ROM) 216 is coupled to system bus 212 and includes a basic input/output system (“BIOS”) that controls certain basic functions of client 110 .
  • RAM random access memory
  • I/O adapter 218 I/O adapter 218
  • communications adapter 234 are also coupled to system bus 212 .
  • software components including operating system 240 and application 250 are loaded into RAM 214 which is the computer system's main memory.
  • I/O adapter 218 may be an integrated drive electronics (“IDE”) adapter that communicates with disk unit 220 , e.g., disk drive.
  • IDE integrated drive electronics
  • Communications adapter 234 interconnects bus 212 with an outside network enabling client 110 to communicate with other such systems via a Local Area Network (LAN), e.g., Ethernet, Token Ring, ARCnet, or a Wide Area Network (WAN), e.g., Internet.
  • LAN Local Area Network
  • WAN Wide Area Network
  • Input/Output devices are also connected to system bus 212 via a user interface adapter 222 and display adapter 236 .
  • Keyboard 224 , mouse 226 and speaker 230 are all interconnected to bus 212 through user interface adapter 222 .
  • Event data may be input to client 110 through any of these devices.
  • a display monitor 238 is connected to system bus 212 by display adapter 236 . In this manner, a user is capable of inputting to client 110 through keyboard 224 or mouse 226 and receiving output from client 110 via display 238 or speaker 230 .
  • Implementations of the invention include implementations as a computer system programmed to execute the method or methods described herein, and as a computer program product.
  • sets of instructions for executing the method or methods are resident in the random access memory 214 of one or more computer systems configured generally as described above.
  • the set of instructions may be stored as a computer program product in another computer device, for example, in disk drive 220 (which may include a removable memory such as an optical disk or floppy disk for eventual use in the disk drive 220 ).
  • the computer program product can also be stored at another computer and transmitted when desired to the user's workstation by a network or by an external network such as the Internet.
  • the physical storage of the sets of instructions physically changes the medium upon which it is stored so that the medium carries computer readable information. The change may be electrical, magnetic, chemical, biological, or some other physical change.
  • FIGS. 3 A and 3 B Method for Converting Structured Query Language (SQL) Queries into an Open Database Connectivity (ODBC) Standard
  • FIGS. 3A and 3B is a flowchart of one embodiment of the present invention of a method 300 for converting SQL queries into an Open Database Connectivity (ODBC) standard.
  • ODBC Open Database Connectivity
  • API Application Programming Interface
  • DBMS Database Management Systems
  • an application may utilize the ODBC interface to access data in various DBMSs using SQL. That is, the ODBC interface provides interoperability, where a single application program may access data from different DBMSs.
  • not all applications are ODBC compliant thereby requiring embedded SQL statements within the application source code to be pre-compiled for each DBMS that is to be accessed by the application program.
  • Method 300 is a method for translating SQL statements embedded in an application into the ODBC standard thereby allowing the application to be portable across various DBMSs.
  • the program of the present invention may parse the source code of a database application to identify one or more keywords, e.g., “EXEC SQL”, “EXEC SQL BEGIN DECLARE”, “EXEC SQL END DECLARE”.
  • the source code of the database application may comprise one or more keywords that are used to indicate embedded SQL statements.
  • the keywords “EXEC SQL” may signify the beginning of an SQL statement, e.g., SELECT ⁇ clause>FROM ⁇ clause>WHERE ⁇ clause>, comprising an SQL call.
  • the end of the segment may be indicated by a semi-colon.
  • the source code of the database application may comprise one or more keywords that are used to indicate variables that are required to process the SQL statements.
  • the keywords “EXEC SQL BEGIN DECLARE” may indicate the beginning of a list of variables that are used to process the SQL statements.
  • the keywords “EXEC SQL END DECLARE” may indicate the end of the list of variables that are used to process the SQL statements.
  • step 302 upon identifying one or more keywords in step 301 , one or more SQL statements may be identified.
  • the keywords “EXEC SQL” may signify the beginning of an SQL statement, e.g., SELECT ⁇ clause>FROM ⁇ clause>WHERE ⁇ clause>, where the ⁇ clauses>are parameters that provide data required to process the SQL statement as discussed further below.
  • the end of the segment may be indicated by a semi-colon.
  • one or more variables may be identified based on the one or more keywords identified in step 301 .
  • the keywords “EXEC SQL BEGIN DECLARE” may indicate the beginning of a list of variables that are used to process the SQL statements.
  • the keywords “EXEC SQL END DECLARE” may indicate the end of the list of variables that are used to process the SQL statements.
  • variables “Name”, “SSN”, “Phone” and “Address” may each be associated with a data structure configured to store information required to process the SQL statements via ODBC as well as store the results of processing the SQL statements, e.g., name, social security number, phone number and address.
  • a data structure associated with each of the variables identified in step 303 may be built. These data structures may be used to store information required to process the SQL statements as well as store the results of processing the SQL statements. For example, referring to the source code of the database application illustrated above, a data structure of the variable “SSN” may be configured to provide the social security number of an employee in order to process an SQL statement. The data structures of the variables “Name”, “Phone” and “Address” may store the results of processing an SQL statement such as the name, phone number and address for employees.
  • the SQL statements identified in step 302 may be evaluated. That is, the program may determine the particular query requested and the operations to be performed to process the request.
  • the SELECT ⁇ clause> may cause the retrieval of a subset of data from one or more existing tables stored in relational database 150 where the FROM ⁇ clause> identifies the table from which data is being selected.
  • the items specified in the SELECT ⁇ clause> may determine the columns that will be returned in the result table from the table(s) identified in the FROM ⁇ clause>.
  • the WHERE ⁇ clause> may then determine which rows should be returned in the result table.
  • step 306 the parameters, e.g., ⁇ clauses>, from each of the one or more SQL statements evaluated in step 305 may be extracted. That is, the program may extract data required to process the SQL statement. For example, the program may extract the data in the SQL statement that identifies the table from which the query data is being selected in a SELECT SQL statement.
  • the one or more SQL statements evaluated in step 305 may be matched with a particular function stored in a function library, i.e., a collection of functions stored in data files.
  • a function library i.e., a collection of functions stored in data files.
  • the SELECT SQL statement may correspond to a particular function in the function library.
  • These functions may store particular ODBC calls thereby enabling SQL statements to be converted into the ODBC standard.
  • step 308 the parameters extracted from the one or more SQL statements in step 306 as well as the address(es) of the data structure(s) built in step 304 may be incorporated in the function identified in step 307 .
  • the data in the SQL statement that identifies the table from which the query data is being selected in a SELECT SQL statement may be incorporated into the function identified in step 307 .
  • a function call i.e., a call to the function identified in step 307 , may be substituted for each of the one or more SQL statements identified in step 302 .
  • step 310 the new version of the application source code comprising the function calls substituted for each of the one or more SQL statements identified in step 302 may be compiled.
  • step 311 the compiled new version of the application source code may then be executed.
  • step 312 the function call may then be implemented resulting in the execution of ODBC calls.
  • step 313 the results from the execution of ODBC calls may be returned in the appropriate data structure(s) built in step 304 based on the address(es) of the data structure(s) incorporated into the function identified in step 307 .
  • the name, address and phone number of the employee with the SSN of 111-11-1111 may be stored in the data structures name, address, and phone number, respectively.
  • the converted application program returns the same results using ODBC to access the DBMS as the original applications program would using embedded SQL to access the DBMS.
  • the database application may access the results from the appropriate data structure(s).
  • the database application may output the results in a variety of forms such as displaying the results on display 238 . It is noted that other means of outputting the results would be recognized by an artisan of ordinary skill in the art and that such embodiments employing such means would fall within the scope of the present invention.
  • method 300 may be executed in a different order presented and that the order presented in the discussion of FIGS. 3A and 3B is illustrative. It is further noted that certain steps may be executed almost concurrently.

Abstract

A method, computer program product and system for converting Structured Query Language (SQL) statements into the Open Database Connectivity (ODBC) standard. The source code of a database application may be parsed to identify one or more keywords. These keywords may be used to identify SQL statements as well as variables that are used to process the SQL statements. Upon identifying the SQL statements, the SQL statements may be evaluated. The SQL statements evaluated may then be matched with particular functions in a function library, i.e., a collection of functions stored in data files. These functions may implement particular ODBC calls thereby enabling SQL statements to be converted into the ODBC standard. A function call, i.e., a call to that function, may be substituted for the corresponding SQL statement. The function call may then be implemented resulting in the execution of the ODBC calls.

Description

    TECHNICAL FIELD
  • The present invention relates to the field of database management systems, and more particularly to converting Structured Query Language (SQL) queries into an Open Database Connectivity (ODBC) standard which is portable across various database management systems. [0001]
  • BACKGROUND INFORMATION
  • Databases are computerized information storage and retrieval systems. A Relational Database Management System (RDBMS) is a Database Management System (DBMS) which uses relational techniques for storing and retrieving data. Relational databases are organized into tables which consist of rows and columns of data. The rows are formally called tuples. A database will typically have many tables and each table will typically have multiple tuples and multiple columns. The tables are typically stored on random Access Storage Devices (DASD) such as magnetic or optical disk drives for semi-permanent storage. [0002]
  • A DBMS is structured to accept commands to store, retrieve, and delete data. One widely used and well known set of commands is called the Structured Query Language (SQL). The current SQL standard is known informally as SQL/92. The definitions for SQL provide that a DBMS should respond to a particular query with a particular set of data given a specified database content, but the method that the DBMS uses to actually find the required information in the tables on the disk drives is left up to the DBMS. Typically there will be more than one method that can be used by the DBMS to access the required data. The DBMS will optimize the method used to find the data requested in a query in order to minimize the computer time used and, therefore, the cost of doing the query. [0003]
  • A method for accessing data in a DBMS may be to embed SQL statements within an application program, e.g., COBOL, C, C++. Typically, a DBMS may include one or more language specific pre-compilers. A pre-compiler may be configured to process the language program source code including the embedded SQL statements. Processing may include removing SQL statements from the source code, checking the syntax of the SQL statements and inserting calls to private DBMS routines in substitution of the SQL statements. Since each DBMS may include one or more language specific pre-compilers, an application program with embedded SQL statements that is executed on more than one DBMS may have to be pre-compiled using the language specific pre-compiler for each DBMS. [0004]
  • However, an application program using SQL queries may be able to be executed on more than one DBMS without requiring the use of language specific pre-compilers through the use of the Open Database Connectivity (ODBC) standard. The ODBC standard, promulgated by Microsoft™, provides a standard database access Application Programming Interface (API) that is portable across multiple database management systems. Subsequently, an application may utilize the ODBC interface to access data in various DBMSs using SQL. That is, the ODBC interface provides interoperability, where a single application program may access data from different DBMSs. This interoperability may allow an application developer to develop, compile, and ship an application program without targeting a specific DBMS. The ODBC interface is more clearly described in ODBC 2.0 Programmer's Reference and SDK guide, Microsoft Press (1994), which is hereby incorporated herein by reference. [0005]
  • However, not all application programs are ODBC compliant. That is, not all application programs with embedded SQL statements may be able to utilize an ODBC interface to access data in various DBMSs using SQL. [0006]
  • It would therefore be desirable to develop a tool to convert an application that uses embedded SQL API calls to access data in a DBMS to an application that uses ODBC API calls to access data in a DBMS. [0007]
  • SUMMARY
  • The problems outlined above may at least in part be solved in some embodiments by matching Structured Query Language (SQL) statements with functions storing particular Open Database Connectivity (ODBC) calls in a library thereby converting SQL statements into the ODBC standard. [0008]
  • In one embodiment of the present invention, a method for converting SQL statements into the ODBC standard may comprise the step of parsing the source code of an application comprising embedded SQL calls to identify one or more keywords, e.g., “EXEC SQL SELECT”, “EXEC SQL BEGIN DECLARE”, “EXEC SQL END DECLARE”. The keywords may be used to identify SQL statements, e.g., SELECT<clause>FROM<clause>WHERE<clause>, as well as variables that are used to process the SQL statements. Upon identifying the variables, a data structure associated with each variable may be built. These data structures may be used to store information required to process the SQL statements as well as store the results of processing the SQL statements. Upon identifying the SQL statements, the SQL statements may be evaluated. That is, the particular query requested and the operations to be performed to process the request may be determined. [0009]
  • The parameters in the SQL statements evaluated may be extracted where the parameters comprise data required to process the SQL statements, e.g., data that identifies the tables and columns from which the data is being selected in a SELECT SQL statement. The SQL statements evaluated may then be matched with particular functions in a function library, i.e., a collection of functions stored in data files. For example, the SELECT SQL statement may correspond to a particular function in the function library. These functions may store particular ODBC calls thereby enabling SQL statements to be converted into the ODBC standard. [0010]
  • The parameters extracted from the SQL statements as well as the addresses associated with the data structures built may be incorporated in the matched function. A function call, i.e., a call to that function, may be substituted for the corresponding SQL statement. The new version of the application, i.e., the application source code comprising the substituted function call, may be compiled and executed. Upon executing the new version of the application, the function call may then be implemented resulting in the execution of the ODBC calls. The results from the execution of the ODBC calls may be returned in the appropriate data structures based on the addresses of the data structures incorporated into the function. These results are the same results as if the SQL statements were directly processed instead of converting the SQL statements into the ODBC standard. [0011]
  • The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention. [0012]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • A better understanding of the present invention can be obtained when the following detailed description is considered in conjunction with the following drawings, in which: [0013]
  • FIG. 1 illustrates an embodiment of a database management system configured in accordance with the present invention; [0014]
  • FIG. 2 illustrates an embodiment of a client configured in accordance with the present invention; and [0015]
  • FIGS. 3A and 3B is a flowchart of a method for converting Structured Query Language (SQL) queries into an Open Database Connectivity (ODBC) standard. [0016]
  • DETAILED DESCRIPTION
  • FIG. 1—Database System [0017]
  • FIG. 1 illustrates one embodiment of the present invention of a database system [0018] 100. System 100 may comprise a client 110 coupled to a server 130 via a network 120. Network 120 may be a Local Area Network (LAN), e.g., Ethernet, Token Ring, ARCnet, or a Wide Area Network (WAN), e.g., Internet. Server 130 may comprise a Database Management System (DBMS) 140 configured to use relational techniques for storing and retrieving data from a relational database 150. Relational database 150 may be organized into tables which consists of rows and columns of data where the rows are commonly referred to as tuples. It is noted that database system 100 may comprise any number of clients 110 as well as any number of servers 130 and databases 150 and that FIG. 1 is illustrative. It is further noted that the connection between client 110 and network 120 and between network 120 and server 130 may be any medium type, e.g., wireless, wired. It is further noted that client 110 may be any type of device, e.g., wireless, Personal Digital Assistant (PDA), cell phone, personal computer system, workstation, Internet appliance, configured with the capability of connecting to network 120 and consequently communicating with server 130. It is further noted that database system 100 may be any type of system that has at least one server 130 and at least one client 110 and that FIG. 1 is not to be limited in scope to any one particular embodiment.
  • A database application of [0019] client 110 may issue Structured Query Language (SQL) statements to server 130 that are commands to store, retrieve or delete data stored in relational database 150. These SQL statements may be converted into the ODBC standard as described further hereinbelow in conjunction with FIGS. 3A and 3B. By converting the SQL statements into the ODBC standard, the application may be portable across various database management systems. A detailed description of client 110 is provided below.
  • FIG. 2—Hardware Configuration of Client [0020]
  • FIG. 2 illustrates a typical hardware configuration of [0021] client 110 which is representative of a hardware environment for practicing the present invention. Client 110 has a central processing unit (CPU) 210 coupled to various other components by system bus 212. An operating system 240 runs on CPU 210 and provides control and coordinates the function of the various components of FIG. 2. An application 250 in accordance with the principles of the present invention runs in conjunction with operating system 240 and provides output calls to operating system 240 where the output calls implement the various functions or services to be performed by application 250. Application 250 may include for example, a conversion tool configured to convert SQL statements into the Open Database Connectivity (ODBC) standard as described in FIGS. 3A and 3B. Read only memory (ROM) 216 is coupled to system bus 212 and includes a basic input/output system (“BIOS”) that controls certain basic functions of client 110. Random access memory (RAM) 214, I/O adapter 218, and communications adapter 234 are also coupled to system bus 212. It should be noted that software components including operating system 240 and application 250 are loaded into RAM 214 which is the computer system's main memory. I/O adapter 218 may be an integrated drive electronics (“IDE”) adapter that communicates with disk unit 220, e.g., disk drive. It is noted that the program of the present invention that converts SQL queries into the ODBC standard, as described in FIGS. 3A and 3B, may reside in disk unit 220 or in application 250.
  • [0022] Communications adapter 234 interconnects bus 212 with an outside network enabling client 110 to communicate with other such systems via a Local Area Network (LAN), e.g., Ethernet, Token Ring, ARCnet, or a Wide Area Network (WAN), e.g., Internet. Input/Output devices are also connected to system bus 212 via a user interface adapter 222 and display adapter 236. Keyboard 224, mouse 226 and speaker 230 are all interconnected to bus 212 through user interface adapter 222. Event data may be input to client 110 through any of these devices. A display monitor 238 is connected to system bus 212 by display adapter 236. In this manner, a user is capable of inputting to client 110 through keyboard 224 or mouse 226 and receiving output from client 110 via display 238 or speaker 230.
  • Implementations of the invention include implementations as a computer system programmed to execute the method or methods described herein, and as a computer program product. According to the computer system implementation, sets of instructions for executing the method or methods are resident in the [0023] random access memory 214 of one or more computer systems configured generally as described above. Until required by the computer system, the set of instructions may be stored as a computer program product in another computer device, for example, in disk drive 220 (which may include a removable memory such as an optical disk or floppy disk for eventual use in the disk drive 220). Further, the computer program product can also be stored at another computer and transmitted when desired to the user's workstation by a network or by an external network such as the Internet. One skilled in the art would appreciate that the physical storage of the sets of instructions physically changes the medium upon which it is stored so that the medium carries computer readable information. The change may be electrical, magnetic, chemical, biological, or some other physical change.
  • FIGS. [0024] 3A and 3B—Method for Converting Structured Query Language (SQL) Queries into an Open Database Connectivity (ODBC) Standard
  • FIGS. 3A and 3B is a flowchart of one embodiment of the present invention of a [0025] method 300 for converting SQL queries into an Open Database Connectivity (ODBC) standard. As stated in the Background Information section, the ODBC standard provides a standard database access Application Programming Interface (API) that is portable across multiple Database Management Systems (DBMS). Subsequently, an application may utilize the ODBC interface to access data in various DBMSs using SQL. That is, the ODBC interface provides interoperability, where a single application program may access data from different DBMSs. However, not all applications are ODBC compliant thereby requiring embedded SQL statements within the application source code to be pre-compiled for each DBMS that is to be accessed by the application program. It would therefore be desirable to develop a tool that translates SQL statements embedded in an application into the ODBC standard thereby allowing the application to be portable across various database management systems. Method 300 is a method for translating SQL statements embedded in an application into the ODBC standard thereby allowing the application to be portable across various DBMSs.
  • In [0026] step 301, the program of the present invention may parse the source code of a database application to identify one or more keywords, e.g., “EXEC SQL”, “EXEC SQL BEGIN DECLARE”, “EXEC SQL END DECLARE”. The source code of the database application may comprise one or more keywords that are used to indicate embedded SQL statements. For example, the keywords “EXEC SQL” may signify the beginning of an SQL statement, e.g., SELECT<clause>FROM<clause>WHERE<clause>, comprising an SQL call. The end of the segment may be indicated by a semi-colon. The source code of the database application may comprise one or more keywords that are used to indicate variables that are required to process the SQL statements. For example, the keywords “EXEC SQL BEGIN DECLARE” may indicate the beginning of a list of variables that are used to process the SQL statements. The keywords “EXEC SQL END DECLARE” may indicate the end of the list of variables that are used to process the SQL statements. Each variable may have a data structure associated with it that may be used to store information required to process the SQL statements via ODBC, e.g., employee name=Bobby, as well as store the results of processing the SQL statements, e.g., name, social security number, phone number and address for Bobby, as further described below.
  • In [0027] step 302, upon identifying one or more keywords in step 301, one or more SQL statements may be identified. As stated above, the keywords “EXEC SQL” may signify the beginning of an SQL statement, e.g., SELECT<clause>FROM<clause>WHERE<clause>, where the <clauses>are parameters that provide data required to process the SQL statement as discussed further below. The end of the segment may be indicated by a semi-colon.
  • In [0028] step 303, one or more variables may be identified based on the one or more keywords identified in step 301. As stated above, the keywords “EXEC SQL BEGIN DECLARE” may indicate the beginning of a list of variables that are used to process the SQL statements. The keywords “EXEC SQL END DECLARE” may indicate the end of the list of variables that are used to process the SQL statements. For example, in the source code of the database application shown below
  • EXEC SQL BEGIN DECLARE SECTION; [0029]
  • Char Name [25]; [0030]
  • Char SSN [11]; [0031]
  • Char Phone [12]; [0032]
  • Char Address [30]; [0033]
  • EXEC SQL END DECLARE SECTION; [0034]
  • variables “Name”, “SSN”, “Phone” and “Address” may each be associated with a data structure configured to store information required to process the SQL statements via ODBC as well as store the results of processing the SQL statements, e.g., name, social security number, phone number and address. [0035]
  • In [0036] step 304, a data structure associated with each of the variables identified in step 303 may be built. These data structures may be used to store information required to process the SQL statements as well as store the results of processing the SQL statements. For example, referring to the source code of the database application illustrated above, a data structure of the variable “SSN” may be configured to provide the social security number of an employee in order to process an SQL statement. The data structures of the variables “Name”, “Phone” and “Address” may store the results of processing an SQL statement such as the name, phone number and address for employees.
  • In [0037] step 305, the SQL statements identified in step 302 may be evaluated. That is, the program may determine the particular query requested and the operations to be performed to process the request. For example, in the SELECT SQL statement, the SELECT <clause> may cause the retrieval of a subset of data from one or more existing tables stored in relational database 150 where the FROM <clause> identifies the table from which data is being selected. The items specified in the SELECT <clause> may determine the columns that will be returned in the result table from the table(s) identified in the FROM <clause>. The WHERE <clause> may then determine which rows should be returned in the result table.
  • In [0038] step 306, the parameters, e.g., <clauses>, from each of the one or more SQL statements evaluated in step 305 may be extracted. That is, the program may extract data required to process the SQL statement. For example, the program may extract the data in the SQL statement that identifies the table from which the query data is being selected in a SELECT SQL statement.
  • In [0039] step 307, the one or more SQL statements evaluated in step 305 may be matched with a particular function stored in a function library, i.e., a collection of functions stored in data files. For example, the SELECT SQL statement may correspond to a particular function in the function library. These functions may store particular ODBC calls thereby enabling SQL statements to be converted into the ODBC standard.
  • In [0040] step 308, the parameters extracted from the one or more SQL statements in step 306 as well as the address(es) of the data structure(s) built in step 304 may be incorporated in the function identified in step 307. For example, the data in the SQL statement that identifies the table from which the query data is being selected in a SELECT SQL statement may be incorporated into the function identified in step 307.
  • In [0041] step 309, a function call, i.e., a call to the function identified in step 307, may be substituted for each of the one or more SQL statements identified in step 302.
  • In [0042] step 310, the new version of the application source code comprising the function calls substituted for each of the one or more SQL statements identified in step 302 may be compiled. In step 311, the compiled new version of the application source code may then be executed.
  • In [0043] step 312, the function call may then be implemented resulting in the execution of ODBC calls. In step 313, the results from the execution of ODBC calls may be returned in the appropriate data structure(s) built in step 304 based on the address(es) of the data structure(s) incorporated into the function identified in step 307. For example, the name, address and phone number of the employee with the SSN of 111-11-1111 may be stored in the data structures name, address, and phone number, respectively. The converted application program returns the same results using ODBC to access the DBMS as the original applications program would using embedded SQL to access the DBMS.
  • In [0044] step 314, the database application may access the results from the appropriate data structure(s). In step 315, the database application may output the results in a variety of forms such as displaying the results on display 238. It is noted that other means of outputting the results would be recognized by an artisan of ordinary skill in the art and that such embodiments employing such means would fall within the scope of the present invention.
  • It is noted that [0045] method 300 may be executed in a different order presented and that the order presented in the discussion of FIGS. 3A and 3B is illustrative. It is further noted that certain steps may be executed almost concurrently.
  • Although the method, computer program product and system are described in connection with several embodiments, it is not intended to be limited to the specific forms set forth herein, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents, as can be reasonably included within the spirit and scope of the invention as defined by the appended claims. It is noted that the headings are used only for organizational purposes and not meant to limit the scope of the description or claims. [0046]

Claims (27)

1. A method for converting Structure Queried Language (SQL) queries into an Open Database Connectivity (ODBC) standard comprising the steps of:
parsing a source code to identify one or more keywords;
identifying an SQL statement based on said one or more keywords;
matching said SQL statement with a function, wherein said function is associated with one or more ODBC calls; and
substituting said SQL statement with a call to said function.
2. The method as recited in claim 1 further comprising the steps of:
identifying one or more variables based on said one or more keywords; and
building a data structure for each of said one or more variables.
3. The method as recited in claim 2 further comprising the step of:
extracting parameters from said SQL statement, wherein said parameters are data required to process said SQL statement.
4. The method as recited in claim 3 further comprising the step of:
incorporating said parameters and address of each of said data structure built in said function.
5. The method as recited in claim 1 further comprising the step of:
evaluating said SQL statement, wherein said function is matched with said SQL statement upon evaluating said SQL statement.
6. The method as recited in claim 2, wherein said data structure stores at least one of information required to process said SQL statement and a result of processing said SQL statement.
7. The method as recited in claim 1 further comprising the steps of:
compiling said source code with said call to said function substituted for said SQL statement;
executing said compiled source code; and
executing said one or more ODBC calls associated with said function.
8. The method as recited in claim 7, wherein said SQL statement requests a particular query, wherein the method further comprises the step of:
returning a result of said particular query in response to said one or more ODBC calls.
9. The method as recited in claim 8 further comprising the step of:
outputting said result.
10. A computer program product having a computer readable medium having computer program logic recorded thereon for converting Structure Queried Language (SQL) queries into an Open Database Connectivity (ODBC) standard, comprising:
programming operable for parsing a source code to identify one or more keywords;
programming operable for identifying an SQL statement based on said one or more keywords;
programming operable for matching said SQL statement with a function, wherein said function is associated with one or more ODBC calls; and
programming operable for substituting said SQL statement with a call to said function.
11. The computer program product as recited in claim 10 further comprising:
programming operable for identifying one or more variables based on said one or more keywords; and
programming operable for building a data structure for each of said one or more variables.
12. The computer program product as recited in claim 11 further comprising:
programming operable for extracting parameters from said SQL statement, wherein said parameters are data required to process said SQL statement.
13. The computer program product as recited in claim 12 further comprising:
programming operable for incorporating said parameters and address of each of said data structure built in said function.
14. The computer program product as recited in claim 10 further comprising:
programming operable for evaluating said SQL statement, wherein said function is matched with said SQL statement upon evaluating said SQL statement.
15. The computer program product as recited in claim 11, wherein said data structure stores at least one of information required to process said SQL statement and a result of processing said SQL statement.
16. The computer program product as recited in claim 10 further comprising:
programming operable for compiling said source code with said call to said function substituted for said SQL statement;
programming operable for executing said compiled source code; and
programming operable for executing said one or more ODBC calls associated with said function.
17. The computer program product as recited in claim 16, wherein said SQL statement requests a particular query, wherein the computer program product further comprises:
programming operable for returning a result of said particular query in response to said one or more ODBC calls.
18. The computer program product as recited in claim 17 further comprising:
programming operable for outputting said result.
19. A system, comprising:
a processor;
a memory unit operable for storing a computer program operable for converting Structure Queried Language (SQL) queries into an Open Database Connectivity (ODBC) standard;
an input mechanism;
an output mechanism; and
a bus system coupling the processor to the memory unit, input mechanism, and output mechanism, wherein the computer program is operable for performing the programming steps:
parsing a source code to identify one or more keywords;
identifying an SQL statement based on said one or more keywords;
matching said SQL statement with a function, wherein said function is associated with one or more ODBC calls; and
substituting said SQL statement with a call to said function.
20. The system as recited in claim 19, wherein the computer program is further operable to perform the following programming steps:
identifying one or more variables based on said one or more keywords; and
building a data structure for each of said one or more variables.
21. The system as recited in claim 20, wherein the computer program is further operable to perform the following programming step:
extracting parameters from said SQL statement, wherein said parameters are data required to process said SQL statement.
22. The system as recited in claim 21, wherein the computer program is further operable to perform the following programming step:
incorporating said parameters and address of each of said data structure built in said function.
23. The system as recited in claim 19, wherein the computer program is further operable to perform the following programming step:
evaluating said SQL statement, wherein said function is matched with said SQL statement upon evaluating said SQL statement.
24. The system as recited in claim 20, wherein said data structure stores at least one of information required to process said SQL statement and a result of processing said SQL statement.
25. The system as recited in claim 19, wherein the computer program is further operable to perform the programming steps:
compiling said source code with said call to said function substituted for said SQL statement;
executing said compiled source code; and
executing said one or more ODBC calls associated with said function.
26. The system as recited in claim 25, wherein said SQL statement requests a particular query, wherein the computer program is further operable to perform the programming step:
returning a result of said particular query in response to said one or more ODBC calls.
27. The system as recited in claim 26, wherein the computer program is further operable to perform the programming step:
outputting said result.
US09/934,887 2001-08-22 2001-08-22 Tool for converting SQL queries into portable ODBC Expired - Fee Related US6877000B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/934,887 US6877000B2 (en) 2001-08-22 2001-08-22 Tool for converting SQL queries into portable ODBC

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/934,887 US6877000B2 (en) 2001-08-22 2001-08-22 Tool for converting SQL queries into portable ODBC

Publications (2)

Publication Number Publication Date
US20030041052A1 true US20030041052A1 (en) 2003-02-27
US6877000B2 US6877000B2 (en) 2005-04-05

Family

ID=25466237

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/934,887 Expired - Fee Related US6877000B2 (en) 2001-08-22 2001-08-22 Tool for converting SQL queries into portable ODBC

Country Status (1)

Country Link
US (1) US6877000B2 (en)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069263B1 (en) * 2002-02-19 2006-06-27 Oracle International Corporation Automatic trend analysis data capture
US20080126880A1 (en) * 2006-11-27 2008-05-29 Orla Hegarty Automatic generation of test cases from error data
US20080270989A1 (en) * 2007-04-27 2008-10-30 Azadeh Ahadian Detecting and displaying errors in database statements within integrated development environment tool
US20080270343A1 (en) * 2007-04-27 2008-10-30 Stephen Andrew Brodsky Processing database queries embedded in application source code from within integrated development environment tool
US20080270980A1 (en) * 2007-04-27 2008-10-30 Azadeh Ahadian Rapid application development for database-aware applications
US20080270983A1 (en) * 2007-04-27 2008-10-30 Azadeh Ahadian Database connectivity and database model integration within integrated development environment tool
US20080320441A1 (en) * 2007-06-23 2008-12-25 Azadeh Ahadian Extensible rapid application development for disparate data sources
US20090037873A1 (en) * 2007-08-03 2009-02-05 Azadeh Ahadian Displaying and refactoring programs that include database statements
US20090037893A1 (en) * 2007-08-03 2009-02-05 Stephen Andrew Brodsky Coverage analysis tool for database-aware applications
US20100049694A1 (en) * 2008-08-20 2010-02-25 Ca, Inc. Method and system for extending a relational schema
US7712078B1 (en) * 2005-02-02 2010-05-04 Teradata Us, Inc. Techniques for data store population
US20150358383A1 (en) * 2014-06-10 2015-12-10 Eyal Nathan Odbc access to external services
US20160239582A1 (en) * 2015-02-18 2016-08-18 Ab Initio Technology Llc Querying a data source on a network
US20180067837A1 (en) * 2016-09-06 2018-03-08 Sap Se Framework for detecting source code anomalies
CN107908739A (en) * 2017-11-15 2018-04-13 湖南上容信息技术有限公司 Dynamic syntax analytic method and its resolution system
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
FR3082971A1 (en) * 2018-06-26 2019-12-27 Bull Sas SYSTEM FOR DEVELOPING A PROGRAM FOR COMMUNICATING WITH A SET OF AT LEAST ONE DATABASE
FR3082972A1 (en) * 2018-06-26 2019-12-27 Bull Sas PRE-COMPILER, PROGRAM DEVELOPMENT SYSTEM, PRE-COMPILATION METHOD AND CORRESPONDING COMPUTER PROGRAM
US10521427B2 (en) 2011-05-02 2019-12-31 Ab Initio Technology Llc Managing data queries
CN111367937A (en) * 2020-02-28 2020-07-03 艾普阳科技(深圳)有限公司 Data processing method and device
CN111563266A (en) * 2020-05-06 2020-08-21 许继集团有限公司 Encryption method and device and decryption method and device for data operation program of power system
CN111949684A (en) * 2020-08-06 2020-11-17 上海达梦数据库有限公司 SQL statement execution method, device, equipment and storage medium
CN112328621A (en) * 2020-11-05 2021-02-05 中国平安财产保险股份有限公司 SQL conversion method and device, computer equipment and computer readable storage medium
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
CN115481137A (en) * 2022-09-21 2022-12-16 深圳市沃享科技有限公司 Software generation method, device, equipment and medium based on SQL (structured query language) statement
US11593369B2 (en) 2010-01-15 2023-02-28 Ab Initio Technology Llc Managing data queries

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040249792A1 (en) * 2003-06-04 2004-12-09 Salman Halim Automated query file conversions upon switching database-access applications
US20050049999A1 (en) * 2003-08-29 2005-03-03 Immo-Gert Birn Database access statement tracing
US7496569B2 (en) * 2003-08-29 2009-02-24 Sap Ag Database access statement parser
US9268834B2 (en) * 2012-12-13 2016-02-23 Microsoft Technology Licensing, Llc Distributed SQL query processing using key-value storage system
EP3373134B1 (en) 2013-12-06 2020-07-22 Ab Initio Technology LLC Source code translation

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664173A (en) * 1995-11-27 1997-09-02 Microsoft Corporation Method and apparatus for generating database queries from a meta-query pattern
US5749079A (en) * 1992-03-04 1998-05-05 Singapore Computer Systems Limited End user query facility including a query connectivity driver
US5761494A (en) * 1996-10-11 1998-06-02 The Sabre Group, Inc. Structured query language to IMS transaction mapper
US6016499A (en) * 1997-07-21 2000-01-18 Novell, Inc. System and method for accessing a directory services respository
US6052685A (en) * 1997-08-13 2000-04-18 Mosaix, Inc. Integration of legacy database management systems with ODBC-compliant application programs
US6182029B1 (en) * 1996-10-28 2001-01-30 The Trustees Of Columbia University In The City Of New York System and method for language extraction and encoding utilizing the parsing of text data in accordance with domain parameters
US6363391B1 (en) * 1998-05-29 2002-03-26 Bull Hn Information Systems Inc. Application programming interface for monitoring data warehouse activity occurring through a client/server open database connectivity interface
US20020087327A1 (en) * 2000-12-29 2002-07-04 Lee Victor Wai Leung Computer-implemented HTML pattern parsing method and system
US20020161801A1 (en) * 2001-04-26 2002-10-31 Hind John R. Efficient processing of extensible markup language documents in content based routing networks
US20030046673A1 (en) * 2001-06-29 2003-03-06 Microsoft Corporation Linktime recognition of alternative implementations of programmed functionality
US6560592B1 (en) * 1998-03-19 2003-05-06 Micro Data Base Systems, Inc. Multi-model computer database storage system with integrated rule engine
US6658429B2 (en) * 2001-01-05 2003-12-02 Symyx Technologies, Inc. Laboratory database system and methods for combinatorial materials research
US20040015890A1 (en) * 2001-05-11 2004-01-22 Windriver Systems, Inc. System and method for adapting files for backward compatibility

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITRM20010556A1 (en) * 2001-09-12 2003-03-12 Micron Technology Inc DECODER TO DECODE SWITCHING COMMANDS IN INTEGRATED CIRCUIT TEST MODE.

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5749079A (en) * 1992-03-04 1998-05-05 Singapore Computer Systems Limited End user query facility including a query connectivity driver
US5664173A (en) * 1995-11-27 1997-09-02 Microsoft Corporation Method and apparatus for generating database queries from a meta-query pattern
US5761494A (en) * 1996-10-11 1998-06-02 The Sabre Group, Inc. Structured query language to IMS transaction mapper
US6182029B1 (en) * 1996-10-28 2001-01-30 The Trustees Of Columbia University In The City Of New York System and method for language extraction and encoding utilizing the parsing of text data in accordance with domain parameters
US6016499A (en) * 1997-07-21 2000-01-18 Novell, Inc. System and method for accessing a directory services respository
US6052685A (en) * 1997-08-13 2000-04-18 Mosaix, Inc. Integration of legacy database management systems with ODBC-compliant application programs
US6560592B1 (en) * 1998-03-19 2003-05-06 Micro Data Base Systems, Inc. Multi-model computer database storage system with integrated rule engine
US6363391B1 (en) * 1998-05-29 2002-03-26 Bull Hn Information Systems Inc. Application programming interface for monitoring data warehouse activity occurring through a client/server open database connectivity interface
US20020087327A1 (en) * 2000-12-29 2002-07-04 Lee Victor Wai Leung Computer-implemented HTML pattern parsing method and system
US6658429B2 (en) * 2001-01-05 2003-12-02 Symyx Technologies, Inc. Laboratory database system and methods for combinatorial materials research
US20020161801A1 (en) * 2001-04-26 2002-10-31 Hind John R. Efficient processing of extensible markup language documents in content based routing networks
US20040015890A1 (en) * 2001-05-11 2004-01-22 Windriver Systems, Inc. System and method for adapting files for backward compatibility
US20030046673A1 (en) * 2001-06-29 2003-03-06 Microsoft Corporation Linktime recognition of alternative implementations of programmed functionality

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069263B1 (en) * 2002-02-19 2006-06-27 Oracle International Corporation Automatic trend analysis data capture
US7712078B1 (en) * 2005-02-02 2010-05-04 Teradata Us, Inc. Techniques for data store population
US20080126880A1 (en) * 2006-11-27 2008-05-29 Orla Hegarty Automatic generation of test cases from error data
US7844861B2 (en) * 2006-11-27 2010-11-30 Red Hat, Inc. Automatic generation of test cases from error data
US9047337B2 (en) 2007-04-27 2015-06-02 International Business Machines Corporation Database connectivity and database model integration within integrated development environment tool
US20080270983A1 (en) * 2007-04-27 2008-10-30 Azadeh Ahadian Database connectivity and database model integration within integrated development environment tool
US20080270980A1 (en) * 2007-04-27 2008-10-30 Azadeh Ahadian Rapid application development for database-aware applications
US9489418B2 (en) * 2007-04-27 2016-11-08 International Business Machines Corporation Processing database queries embedded in application source code from within integrated development environment tool
US20080270343A1 (en) * 2007-04-27 2008-10-30 Stephen Andrew Brodsky Processing database queries embedded in application source code from within integrated development environment tool
US20080270989A1 (en) * 2007-04-27 2008-10-30 Azadeh Ahadian Detecting and displaying errors in database statements within integrated development environment tool
US8392880B2 (en) * 2007-04-27 2013-03-05 International Business Machines Corporation Rapid application development for database-aware applications
US20080320441A1 (en) * 2007-06-23 2008-12-25 Azadeh Ahadian Extensible rapid application development for disparate data sources
US8375351B2 (en) 2007-06-23 2013-02-12 International Business Machines Corporation Extensible rapid application development for disparate data sources
US20090037893A1 (en) * 2007-08-03 2009-02-05 Stephen Andrew Brodsky Coverage analysis tool for database-aware applications
US8276117B2 (en) * 2007-08-03 2012-09-25 International Business Machines Corporation Displaying and refactoring programs that include database statements
US8473915B2 (en) 2007-08-03 2013-06-25 International Business Machines Corporation Coverage analysis tool for testing database-aware software applications
US20090037873A1 (en) * 2007-08-03 2009-02-05 Azadeh Ahadian Displaying and refactoring programs that include database statements
US20100049694A1 (en) * 2008-08-20 2010-02-25 Ca, Inc. Method and system for extending a relational schema
US11593369B2 (en) 2010-01-15 2023-02-28 Ab Initio Technology Llc Managing data queries
US10521427B2 (en) 2011-05-02 2019-12-31 Ab Initio Technology Llc Managing data queries
US20150358383A1 (en) * 2014-06-10 2015-12-10 Eyal Nathan Odbc access to external services
US9674261B2 (en) * 2014-06-10 2017-06-06 Sap Portals Israel Ltd. ODBC access to external services
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
US10417281B2 (en) * 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US11308161B2 (en) 2015-02-18 2022-04-19 Ab Initio Technology Llc Querying a data source on a network
US20160239582A1 (en) * 2015-02-18 2016-08-18 Ab Initio Technology Llc Querying a data source on a network
US10606728B2 (en) * 2016-09-06 2020-03-31 Sap Se Framework for detecting source code anomalies
US20180067837A1 (en) * 2016-09-06 2018-03-08 Sap Se Framework for detecting source code anomalies
CN107908739A (en) * 2017-11-15 2018-04-13 湖南上容信息技术有限公司 Dynamic syntax analytic method and its resolution system
EP3588273A1 (en) 2018-06-26 2020-01-01 Bull Sas System for the development of a cobol/esql program intended for communicating with a set of at least one database
EP3588274A1 (en) * 2018-06-26 2020-01-01 Bull Sas Pre compilation for embedded sql in cobol source code
FR3082972A1 (en) * 2018-06-26 2019-12-27 Bull Sas PRE-COMPILER, PROGRAM DEVELOPMENT SYSTEM, PRE-COMPILATION METHOD AND CORRESPONDING COMPUTER PROGRAM
FR3082971A1 (en) * 2018-06-26 2019-12-27 Bull Sas SYSTEM FOR DEVELOPING A PROGRAM FOR COMMUNICATING WITH A SET OF AT LEAST ONE DATABASE
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
CN111367937A (en) * 2020-02-28 2020-07-03 艾普阳科技(深圳)有限公司 Data processing method and device
CN111563266A (en) * 2020-05-06 2020-08-21 许继集团有限公司 Encryption method and device and decryption method and device for data operation program of power system
CN111949684A (en) * 2020-08-06 2020-11-17 上海达梦数据库有限公司 SQL statement execution method, device, equipment and storage medium
CN112328621A (en) * 2020-11-05 2021-02-05 中国平安财产保险股份有限公司 SQL conversion method and device, computer equipment and computer readable storage medium
CN115481137A (en) * 2022-09-21 2022-12-16 深圳市沃享科技有限公司 Software generation method, device, equipment and medium based on SQL (structured query language) statement

Also Published As

Publication number Publication date
US6877000B2 (en) 2005-04-05

Similar Documents

Publication Publication Date Title
US6877000B2 (en) Tool for converting SQL queries into portable ODBC
US7406477B2 (en) Database system with methodology for automated determination and selection of optimal indexes
US7089235B2 (en) Method for restricting queryable data in an abstract database
EP2605158B1 (en) Mixed join of row and column database tables in native orientation
US8285707B2 (en) Method of querying relational database management systems
US7359922B2 (en) Database system and methodology for generalized order optimization
US7480648B2 (en) Research rapidity and efficiency improvement by analysis of research artifact similarity
US20070027849A1 (en) Integrating query-related operators in a programming language
US6343286B1 (en) Efficient technique to defer large object access with intermediate results
US20080040317A1 (en) Decomposed query conditions
US7542962B2 (en) Information retrieval method for optimizing queries having maximum or minimum function aggregation predicates
US7792851B2 (en) Mechanism for defining queries in terms of data objects
US8073843B2 (en) Mechanism for deferred rewrite of multiple XPath evaluations over binary XML
CN112860727B (en) Data query method, device, equipment and medium based on big data query engine
US20080319968A1 (en) Processing query conditions having filtered fields within a data abstraction environment
US6938036B2 (en) Query modification analysis
US20080319969A1 (en) Query conditions having filtered fields within a data abstraction environment
US6192358B1 (en) Multiple-stage evaluation of user-defined predicates
US8775414B2 (en) System and method for executing queries
US7185004B1 (en) System and method for reverse routing materialized query tables in a database
US8176035B2 (en) Detecting and tracking monotonicity for accelerating range and inequality queries
KR100984976B1 (en) The integrating and searching method of alien 2-dimension table
US11423027B2 (en) Text search of database with one-pass indexing
US10977284B2 (en) Text search of database with one-pass indexing including filtering
CN115168408A (en) Query optimization method, device, equipment and storage medium based on reinforcement learning

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GAJDA, KIMBERLY LYNN;HESS, BRADLEY ALLAN;THORPE, ROBERT TOD;REEL/FRAME:012108/0869;SIGNING DATES FROM 20010815 TO 20010821

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20090405