1

Тема: JS: Заполнение базы данных с помощью JScript

У меня есть 2 переменные, одна со строкой, а в другой пдф файл.  И есть мс sql база данных, в которой таблица с двумя колонками: чар и блоб соответственно. В прогу можно встроить скрипт jscript, который должен записывать эти значения в базу данных. Пробовал использовать объект ADO Recordset, но он почему-то не работает.
Подскажите, есть еще способы как можно реализовать мою задачу?

2

Re: JS: Заполнение базы данных с помощью JScript

В прогу можно встроить скрипт jscript,

О какой «проге» именно идёт речь?

Пробовал использовать объект ADO Recordset, но он почему-то не работает.

Где Ваш неработающий код?

3

Re: JS: Заполнение базы данных с помощью JScript

Прошу прощения за не точности. Под "прогой" я имею в виду свое корпоративное рабочее ПО. Оно сканирует документы и распознает часть текста. Его функциональность на этом заканчивается и многое надо добавлять скриптами.

Код


[u]Это подключение к БД, тут все в порядке [/u]
var AConnection, RecSet, Cmd, Prm;
 AConnection = new ActiveXObject(ADODB.Connection);
 AConnection.ConnectionString = Provider=SQLOLEDB;Data Source=.SQLEXPRESS;Initial Catalog=BarcodeToCity;User ID=sa;Password=111;;
 AConnection.Open();
  Cmd = new ActiveXObject(ADODB.Command);
  Cmd.ActiveConnection = AConnection;
  

  RecSet.Source = ("INSERT INTO infoTable (cityID) VALUES(?) " ) ;  // параметризированый запрос 
  Cmd.Parameters.refresh;
  Cmd.Parameters(0).Value = Pages.Item(0).BarcodeBlocks.Item(0).Text; // назначение параметра
  RecSet = Cmd.Execute();

    RecSet.MoveNext();


  
  AConnection.Close();

На самом деле это мое первое задание на испытательном сроке, поэтому я совсем не опытный, а спросить особо не у кого.
Благодарю за внимание.

4

Re: JS: Заполнение базы данных с помощью JScript

RecSet.Source = ("INSERT INTO infoTable (cityID) VALUES(?) " ) ; // параметризированый запрос

А где инициализация объекта «RecSet»?

Вообще мало информации.

5 (изменено: Hamsterok, 2013-05-07 16:01:56)

Re: JS: Заполнение базы данных с помощью JScript

+ открыть спойлер

Объясняю подробно: началось мое задание в этой теме
http://forum.script-coding.com/viewtopic.php?id=8260  , худо-бедно разобравшись я сделал перовую половину, а именно: программа считывает значение Barcode, сравнивает его с базой данных и возвращает название города. Тоесть заранее у меня есть какое-то значение, назовём его атрибут, которое ждет, пока ему назначат имя. Рабочий скрипт выглядит так:


var AConnection, RecSet, Cmd, Prm;
//Подключение к БД
 AConnection = new ActiveXObject("ADODB.Connection");
 AConnection.ConnectionString = "Provider=SQLOLEDB;Data Source=.\\SQLEXPRESS;Initial Catalog=BarcodeToCity;User ID=sa;Password=111;";
 AConnection.Open();
  Cmd = new ActiveXObject("ADODB.Command");
  Cmd.ActiveConnection = AConnection;
//Запрос с параметром, параметр - значение, которое снимает прога для каждого документа
  Cmd.CommandText = "SELECT City FROM infoTable WHERE Barcode = ?";
  Cmd.Parameters.refresh;
  Cmd.Parameters(0).Value = Pages.Item(0).BarcodeBlocks.Item(0).Text;
  RecSet = Cmd.Execute();
  RecSet.MoveFirst();
// Назначение имени атрибута
  while (! RecSet.EOF )
  {
DocumentType = "CityType";
if( DocumentType == "CityType" ) {
          setAttribute( RecSet.Fields.Item("City").Value );
        SkipManualIndexing = true;
   }
function setAttribute( newValue )
{
    for( i = 0; i < Attributes.Count; i++ ) {
        var attribute = Attributes.Item( i );
        if( attribute.Name == "City_name" ) {
            attribute.Value = newValue;
            break;
        }
    } 
}
  RecSet.MoveNext();
  }
  AConnection.Close();

После выполнения этого (безусловно кривого, мой первый скрипт в жизни) кода  я получаю желанный результат. 
Теперь у меня есть объект в которой храниться сам документ и объект в котором храниться название города. Мне опять надо скриптом записать два этих значения в базу данных. Как мне это сделать я не знаю. Прошу вашей подсказки какой объект АДО это может сделать и как вообще мне подойти к этой задаче. Просто поменять запрос на INSERT не выходит.

Разобрался, все выходит >.<, извиняюсь за беспокойство;