ទន្ទឹមនឹងការប្រើប្រាស់កម្មវិធី Google Sheets ជាមូលដ្ឋានទិន្នន័យសំរាប់កម្មវិធី Google App Script ទាំងឡាយ យើងក៏អាចប្រើប្រាស់កម្មវិធី Google App Script នេះដើម្បីភ្ជាប់សេវាទៅនឹងមូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធមួយចំនួនទៀតបានដែរ អោយតែមូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធទាំងនោះមានប្រភេទជា Google Cloud SQL, MySQL, Microsoft SQL, ឬ Oracle ។
នៅក្នុងការតភ្ជាប់ទៅនឹងមូលដ្ឋានទិន្នន័យទាំងនោះ ប្រព័ន្ធ Google App Script បានបង្កើតរបៀបតភ្ជាប់តាមបែប «JDBC» ដូចដែលមាននៅក្នុងកម្មវិធីជាភាសា Java ទាំងឡាយដែរ។
ជាក់ស្តែង ដើម្បីតភ្ជាប់ទៅនឹងមូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធមានប្រភេទជា Google Cloud SQL យើងត្រូវប្រើប្រាស់ក្បួនមានឈ្មោះថា «Jdbc.getCloudSqlConnection» ។ ហើយដើម្បីតភ្ជាប់ទៅនឹងមូលដ្ឋានទិន្នន័យមានប្រភេទជា MySQL, Microsoft SQL, ឬ Oracle យើងត្រូវប្រើប្រាស់ក្បួនមានឈ្មោះថា «Jdbc.getConnection» ។
បន្ទាប់មកទៀត បើសិនជាយើងមិនទាន់មានមូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធណាមួយទេនោះ យើងអាចបង្កើតមូលដ្ឋានទិន្នន័យប្រភេទ MySQL មួយបាន នៅលើ server ដែលមានអាស័យដ្ឋានជា freesqldatabase.com។ ក្រោយពីបង្កើតគណនីមួយសំរាប់មូលដ្ឋានទិន្ន័យ MySQL មួយរួចហើយ server នោះនឹងផ្ញើរសារទៅកាន់អ៊ីមែលរបស់យើង បញ្ជាក់ប្រាប់ពីឈ្មោះអ្នកប្រើប្រាស់របស់យើង (username) ពាក្យសំងាត់ (password) ឈ្មោះរបស់មូលដ្ឋានទិន្នន័យ (database name) អាស័យដ្ឋានសំរាប់តភ្ជាប់ទៅនឹងមូលដ្ឋានទិន្នន័យ (database url) និងច្រកចូលទៅកាន់មូលដ្ឋានទិន្នន័យ (port) ។
ក៏ប៉ុន្តែ មុននឹងអាចប្រើប្រាស់មូលដ្ឋានទិន្នន័យនោះសំរាប់រក្សាទុកនូវទិន្នន័យផ្សេងៗជាភាសាខ្មែរយើងបាន យើងចាំបាច់ត្រូវធ្វើការកែកុនមួយជាមុនសិន ដោយចូលទៅកាន់ទំព័រ «phpMyAdmin» របស់ server freesqldatabase.com តាមរយៈអាស័យដ្ឋាននេះ phpmyadmin.co/index.php ។ នៅពេលដែលយើងចូលដល់ទំព័រនោះហើយ យើងត្រូវសរសេរនៅលើ console របស់ទំព័រ phpMyAdmin នោះដូចខាងក្រោមនេះ រួចចុច Ctrl+Enter គឺជាការស្រេច យើងនឹងអាចប្រើប្រាស់ទិន្នន័យជាភាសាខ្មែរយើងបានគ្រប់ពេលវេលានៅក្នុងមូលដ្ឋានទិន្នន័យរបស់យើងនោះ។
ហើយដើម្បីភ្ជាប់ទៅនឹងមូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធដែលមានប្រភេទជា MySQL នោះ យើងត្រូវធ្វើដូចខាងក្រោមនេះ៖
var connectionName = 'sql12.freesqldatabase.com'; var port = '3306'; var user = 'USERNAME'; var userPwd = 'PASSWORD'; var database = 'sql12286644'; var instanceUrl = 'jdbc:mysql://'+connectionName+':'+port; var font = '?useUnicode=yes&characterEncoding=UTF-8'; var dbUrl = instanceUrl+'/'+database+font; //ភ្ជាប់សេវាទៅកាន់មូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធ var conn = Jdbc.getConnection(dbUrl, user, userPwd);
នៅលើបន្ទាត់លេខ 12 ការសរសេរថា var conn = Jdbc.getConnection(dbUrl, user, userPwd) គឺជាការយកក្បួនឈ្មោះ «getConnection» មកប្រើដើម្បីភ្ជាប់សេវាទៅនឹងមូលដ្ឋានទិន្នន័យនៅលើ server ដែលមានអាស័យដ្ឋានជា dbUrl ឈ្មោះអ្នកប្រើប្រាស់ជា user និង ពាក្យសំងាត់សំរាប់ចូលទៅកាន់មូលដ្ឋានទិន្នន័យជា userPwd ។
មួយវិញទៀត ដើម្បីបញ្ជូលទិន្នន័យទៅក្នុងមូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធនោះ ជាដំបូងឡើយយើងត្រូវបង្កើតតារាងមួយសិន ដោយធ្វើដូចខាងក្រោមនេះ៖
var connectionName = 'sql12.freesqldatabase.com';
var port = '3306';
var user = 'USERNAME';
var userPwd = 'PASSWORD';
var database = 'sql12286644';
var instanceUrl = 'jdbc:mysql://'+connectionName+':'+port;
var font = '?useUnicode=yes&characterEncoding=UTF-8';
var dbUrl = instanceUrl+'/'+database+font;
var conn = Jdbc.getConnection(dbUrl, user, userPwd);
function createTable(){
//បង្កើតតារាងមួយឈ្មោះ Classroom
conn.createStatement().execute('CREATE TABLE Classroom '
+ '(ឈ្មោះ VARCHAR(255), '
+ 'អាយុ VARCHAR(255), '
+ 'ភេទ VARCHAR(255), '
+ 'ទីលំនៅ VARCHAR(255), '
+ 'Facebook_ID VARCHAR(255));');
}
ចាប់ពីបន្ទាត់លេខ 15 រហូតដល់លេខ 20 គឺជាបញ្ជាតំរូវអោយបង្កើតតារាងមួយមានឈ្មោះថា «Classroom» នៅក្នុងមូលដ្ឋានទិន្នន័យ MySQL នៅក្រៅប្រព័ន្ធមួយ។ តារាងនោះមាន ក្រឡាឈរ (column) ចំនួន ៥ និង ក្រឡាដេក (row) ចំនួន 1 ហើយក្រឡាទាំងពីរនោះកាត់ខ្វែងគ្នាបង្កើតបានជាតូចៗ (cell) ចំនួន 5 ដែលនៅក្នុងនោះមានទិន្នន័យដែលជាពាក្យថា «ឈ្មោះ» «អាយុ» «ភេទ» «ទីលំនៅ» និង «Facebook_ID» រៀងគ្នា។
បន្ទាប់មកទៀត ដើម្បីបញ្ជូលទិន្នន័មួយចំនួនចូលទៅក្នុងតារាងនោះ យើងត្រូវធ្វើដូចខាងក្រោមនេះ៖
var connectionName = 'sql12.freesqldatabase.com';
var port = '3306';
var user = 'USERNAME';
var userPwd = 'PASSWORD';
var database = 'sql12286644';
var instanceUrl = 'jdbc:mysql://'+connectionName+':'+port;
var font = '?useUnicode=yes&characterEncoding=UTF-8';
var dbUrl = instanceUrl+'/'+database+font;
var conn = Jdbc.getConnection(dbUrl, user, userPwd);
function writeToTable(){
//បញ្ចូលទិន្នន័យមួយចំនួននៅក្នុងតារាងឈ្មោះ Classroom
var stmt = conn.prepareStatement('INSERT INTO Classroom '
+ '(ឈ្មោះ, អាយុ, ភេទ, ទីលំនៅ, Facebook_ID) values (?, ?, ?, ?, ?)');
stmt.executeQuery("SET NAMES 'UTF8'");
stmt.executeQuery("SET CHARACTER SET 'UTF8'");
stmt.setString(1, "តាន់ វិច្ឋិកា");
stmt.setString(2, '២៤');
stmt.setString(3, 'ស្រី');
stmt.setString(4, 'ភ្នំពេញ');
stmt.setString(5, '100010725609098');
stmt.addBatch();
stmt.setString(1, "កែវ ចិត្រា");
stmt.setString(2, '២៥');
stmt.setString(3, 'ប្រុសី');
stmt.setString(4, 'កំពត');
stmt.setString(5, '100010725609589');
stmt.addBatch();
stmt.setString(1, "ពិន សុវណ្ណ");
stmt.setString(2, '២៧');
stmt.setString(3, 'ប្រុស');
stmt.setString(4, 'តាកែវ');
stmt.setString(5, '528744436942158');
stmt.addBatch();
stmt.setString(1, "សុខ សុភា");
stmt.setString(2, '២៣');
stmt.setString(3, 'ស្រី');
stmt.setString(4, 'ភ្នំពេញ');
stmt.setString(5, '564651316448853');
stmt.addBatch();
stmt.executeBatch();
conn.close();
}
នៅលើបន្ទាត់លេខ 13 ការសរសេរថា function writeToTable() គឺជាការបង្កើតក្បួនមួយ ដែលនៅក្នុងនោះមានបញ្ជាមួយចំនួនសំរាប់បញ្ចូលទិន្នន័យមួយចំនួនចូលទៅក្នុងតារាងឈ្មោះ «Classromm» នៅក្នុងមូលដ្ឋានទិន្នន័យ MySQL ក្រៅប្រព័ន្ធមួយ។
លើសពីនេះទៀត ដើម្បីចំលងយកទិន្នន័យទាំងនោះមកប្រើការ យើងត្រូវធ្វើដូចខាងក្រោមនេះ៖
var connectionName = 'sql12.freesqldatabase.com';
var port = '3306';
var user = 'USERNAME';
var userPwd = 'PASSWORD';
var database = 'sql12286644';
var instanceUrl = 'jdbc:mysql://'+connectionName+':'+port;
var font = '?useUnicode=yes&characterEncoding=UTF-8';
var dbUrl = instanceUrl+'/'+database+font;
var conn = Jdbc.getConnection(dbUrl, user, userPwd);
function readFromTable(){
var stmt = conn.createStatement();
stmt.setMaxRows(1000);
var results = stmt.executeQuery('SELECT * FROM Classroom');
var numCols = results.getMetaData().getColumnCount();
while (results.next()) {
var rowString = '';
for (var col = 0; col < numCols; col++) {
rowString += results.getString(col + 1) + '\t';
}
Logger.log(rowString);
}
results.close();
stmt.close();
}
នៅលើបន្ទាត់លេខ 16 ការសរសរថា var results = stmt.executeQuery('SELECT * FROM Classroom') គឺជាបញ្ជាតំរូវអោយចំលងយកទិន្នន័យទាំងអស់ដែលមាននៅក្នុងតារាងឈ្មោះ «Classroom» មកប្រើការតាមសេចក្តីត្រូវការ។
នៅលើបន្ទាត់លេខ 24 ការសរសេរថា Logger.log(rowString) គឺជាបញ្ជាតំរូវអោយសរសេរបង្ហញទិន្នន័យទាំងនោះនៅលើបង្អួច View > Logs នៅក្នុងប្រព័ន្ធ Google App Script ៕













