Можно ли использовать AppMaker с SQL Server

#sql-server #google-app-maker

#sql-сервер #google-app-maker

Вопрос:

Я понимаю, что AppMaker можно использовать с PostgreSQL и MySQL, но в документации говорится, что вы можете использовать свой собственный источник данных. Это немного двусмысленно, и я пытаюсь конкретно выяснить, могу ли я использовать существующую базу данных SQL Server. Я разговаривал со службой поддержки Google, но они не смогли ответить и направили меня задать вопрос здесь. Заранее спасибо 🙂

Комментарии:

1. Эта страница developers.google.com/appmaker/models/external-data-options говорится, что он поддерживает JDBC и REST. Вы можете получить драйвер JDBC для SQL Server и попробовать это. learn.microsoft.com/en-us/sql/connect/jdbc / … .

2. В следующий раз, когда будете обращаться в службу поддержки G Suite, попросите команду API. Они должны быть в состоянии оказать вам максимальную помощь.

Ответ №1:

Краткий ответ: да, но облачный SQL проще и работает лучше.

Длинный ответ:

App Maker поддерживает SQL с использованием REST и JDBC, однако это намного сложнее, чем использовать их собственную модель CloudSQL. некоторый код для JDBC, который я использовал в последний раз:

 function get_data() {
  var queryStr = 'SELECT * FROM users'; //SQL query
  var calcRecords = []; //empty array to put records into
  var connection = Jdbc.getConnection(dbUrl, user, userPwd); //connect to database
  var statement = connection.prepareStatement(queryStr); //prepared statement
  var results = statement.executeQuery(); //execute prepared query
  try {
    while (results.next()) {
      var calcRecord = app.models.test.newRecord();
      calcRecord.id = results.getInt(1); //data source test row id
      calcRecord.user = results.getString(2); //data source test row user
      calcRecord.passwd = results.getString(3); //data source test row passwd
      calcRecords.push(calcRecord); //append to 2D array
    }
    results.close(); //close the results
    statement.close(); //close the connection
  } catch (err) {
    console.error('SQL query failed: '   err);
  }
  return calcRecords;
}
  

Эквивалентный Google Cloud SQL:

 function get_users(){
  var ds=app.datasource.Users.Items;
  var data = [];
  for(var i = 0; i < Items.length; i  ){
    tmp = [];
    tmp.push(Items[i].id); //the id
    tmp.push(Items[i].user); //the username
    tmp.push(Items[i].password); //the password
    data.push(tmp); //push to create 2D array
  }
  return data;
}
  

Выполнение запроса немного сложнее и требует серверного кода (например, асинхронных обратных вызовов), но заполнение виджетов, таких как выпадающий список и реализация таблиц, намного проще, обычно требуется пара кликов, а не много кода.

Комментарии:

1. Спасибо за это. Я понимаю, что лучше использовать их собственный сервис, но у меня есть существующая база данных, и ее перенос был бы огромной задачей. На данный момент я просто искал POC, возможно, Power BI от Microsoft подойдет мне лучше, но это кажется немного дорогим.

2. Перенос данных на самом деле довольно прост. если вы можете загрузить свою базу данных в формате CSV и загрузить ее в Google Sheets, то вы можете импортировать эти данные напрямую, включая названия столбцов. Обновление типов SQL сопряжено с небольшими трудностями, но это столько усилий, сколько вам потребуется. Я предпочитаю использовать пользовательские экземпляры SQL, поэтому я понимаю ваш менталитет в этом, но это намного проще с помощью Cloud SQL, я начал делать проект с использованием пользовательского SQL, но пришлось остановиться, потому что некоторые функции не поддерживались. Если вы действительно хотите использовать SQL, тогда просто используйте REST, поскольку им немного проще управлять, чем JDBC.

3. «Перенос данных на самом деле довольно прост. если вы можете загрузить свою базу данных в формате CSV » Это большое «если» и почему я сказал, что это будет гигантская задача. Это база данных с миллионами записей двадцатилетней давности, ей потребуется более надежная стратегия импорта, чем загрузка файла.