(Чтобы быть удаленным), Добавляют данные MATLAB к таблицам базы данных
fastinsert
функция будет удалена в будущем релизе. Используйте sqlwrite
функцию вместо этого. Для получения дополнительной информации см. Вопросы совместимости.
fastinsert(
экспортирует данные из рабочей области MATLAB® и вставляет его в существующую таблицу базы данных с помощью соединения с базой данных conn
,tablename
,colnames
,data
)conn
. Можно задать имя таблицы базы данных и имена столбцов, и задать данные для вставки в базу данных.
Вы не задаете тип данных, которые вы экспортируете. Данные экспортированы в его текущем формате MATLAB.
Во-первых, соединитесь с базой данных Microsoft® SQL Server®. Затем экспортируйте данные из MATLAB® в базу данных и закройте соединение с базой данных.
Создайте соединение с базой данных к базе данных Microsoft® SQL Server® с аутентификацией Windows®. Задайте пустое имя пользователя и пароль.
datasource = 'MS SQL Server Auth'; conn = database(datasource,'','');
Проверяйте соединение с базой данных. Если Message
свойство пусто, связь успешна.
conn.Message
ans = []
Выберите и отобразите все строки в таблице, отсортированной по номеру продуктов с помощью select
функция.
selectquery = 'SELECT * FROM productTable ORDER BY productNumber';
data = select(conn,selectquery)
data = productNumber stockNumber supplierNumber unitCost productDescription _____________ ___________ ______________ ________ __________________ 1 4.0035e+05 1001 14 'Building Blocks' 2 4.0031e+05 1002 9 'Painting Set' 3 4.01e+05 1009 17 'Slinky'
Сохраните имена столбцов productTable
в массиве ячеек.
tablename = 'productTable'; colnames = {'productNumber','stockNumber','supplierNumber', ... 'unitCost','productDescription'};
Храните данные для вставки в массиве ячеек, который содержит эти значения:
productNumber
равняйтесь 4
stockNumber
равняйтесь 500 565
supplierNumber
равняйтесь 1 010
unitCost
равняйтесь 20$
productDescription
равняйтесь 'Cooking Set'
Затем преобразуйте массив ячеек в таблицу.
insertdata = {4,500565,1010,20,'Cooking Set'}; insertdata = cell2table(insertdata,'VariableNames',colnames)
insertdata = productNumber stockNumber supplierNumber unitCost productDescription _____________ ___________ ______________ ________ __________________ 4 5.0057e+05 1010 20 'Cooking Set'
Вставьте данные в таблицу.
fastinsert(conn,tablename,colnames,insertdata)
Выберите и отобразите все строки в таблице снова.
data = select(conn,selectquery)
data = productNumber stockNumber supplierNumber unitCost productDescription _____________ ___________ ______________ ________ __________________ 1 4.0035e+05 1001 14 'Building Blocks' 2 4.0031e+05 1002 9 'Painting Set' 3 4.01e+05 1009 17 'Slinky' 4 5.0057e+05 1010 20 'Cooking Set'
Новая строка появляется в productTable
с данными из insertdata
.
Закройте соединение с базой данных.
close(conn)
Во-первых, соединитесь с базой данных Microsoft® SQL Server®. Затем экспортируйте несколько строк данных из MATLAB® в базу данных и закройте соединение с базой данных.
Создайте соединение с базой данных ODBC к базе данных Microsoft® SQL Server® с аутентификацией Windows®. Задайте пустое имя пользователя и пароль.
datasource = 'MS SQL Server Auth'; conn = database(datasource,'','');
Проверяйте соединение с базой данных. Если Message
свойство пусто, связь успешна.
conn.Message
ans = []
Выберите и отобразите данные в таблице inventoryTable
. Импортируйте данные с помощью select
функция.
selectquery = 'SELECT * FROM inventoryTable';
data = select(conn,selectquery)
data = productNumber Quantity Price inventoryDate _____________ ________ _____ _____________ 1 1700 15 '2014-09-23' 2 1200 9 '2014-07-08' 3 356 17 '2014-05-14' 4 2580 21 '2013-06-08' 5 9000 3 '2012-09-14' 6 4540 8 '2013-12-25' 7 6034 16 '2014-08-06' 8 8350 5 '2011-06-18' 9 2339 13 '2011-02-09' 10 723 24 '2012-03-14'
Присвойте несколько строк данных к массиву ячеек insertdata
. Каждая строка содержит данные для столбцов в inventoryTable
. Первая строка данных содержит:
Номер продуктов равняется 11
Количество равняется 125
Цена составляет 23,00$
Дата материально-технических ресурсов является текущей датой
insertdata = {11,125,23.00,datestr(now,'yyyy-mm-dd'); ... 12,1160,14.7,datestr(now,'yyyy-mm-dd'); ... 13,150,54.5,datestr(now,'yyyy-mm-dd')};
Сохраните имена столбцов inventoryTable
в массиве ячеек.
tablename = 'inventoryTable'; colnames = {'productNumber','Quantity','Price','inventoryDate'};
Вставьте данные в таблицу.
fastinsert(conn,tablename,colnames,insertdata)
Выберите и отобразите данные в таблице inventoryTable
снова.
data = select(conn,selectquery)
data = productNumber Quantity Price inventoryDate _____________ ________ _____ _____________ 1 1700 15 '2014-09-23' 2 1200 9 '2014-07-08' 3 356 17 '2014-05-14' 4 2580 21 '2013-06-08' 5 9000 3 '2012-09-14' 6 4540 8 '2013-12-25' 7 6034 16 '2014-08-06' 8 8350 5 '2011-06-18' 9 2339 13 '2011-02-09' 10 723 24 '2012-03-14' 11 125 23 '2016-11-02' 12 1160 15 '2016-11-02' 13 150 55 '2016-11-02'
Три новых строки появляются в inventoryTable
с данными из insertdata
.
Закройте соединение с базой данных.
close(conn)
Во-первых, соединитесь с базой данных Microsoft® SQL Server®. Затем экспортируйте числовые данные из MATLAB® в базу данных и закройте соединение с базой данных.
Создайте соединение с базой данных ODBC к базе данных Microsoft® SQL Server® с аутентификацией Windows®. Задайте пустое имя пользователя и пароль.
datasource = 'MS SQL Server Auth'; conn = database(datasource,'','');
Проверяйте соединение с базой данных. Если Message
свойство пусто, связь успешна.
conn.Message
ans = []
Задайте числовой матричный numdata
это содержит данные об объеме продаж.
numdata = [777666,0,350,400,450,250,450,500,515,235,100,300,600];
Выберите и отобразите данные в salesVolume
таблица перед вставкой. Импортируйте данные с помощью select
функция.
selectquery = 'SELECT * FROM salesVolume';
data = select(conn,selectquery)
data = StockNumber January February March April May June July August September October November December ___________ _______ ________ _____ _____ ____ ____ ____ ______ _________ _______ ________ ________ 1.2597e+05 1400 1100 981 882 794 752 654 773 809 980 3045 19000 2.1257e+05 2400 1721 1414 1191 983 825 731 653 723 790 1400 5000 3.8912e+05 1800 1200 890 670 550 450 400 410 402 450 1200 16000 4.0031e+05 3000 2400 1800 1500 1200 900 700 650 1670 2500 6000 15000 4.0034e+05 4300 0 2600 1800 1600 1550 895 700 750 900 8000 24000 4.0035e+05 5000 3500 2800 2300 1700 1400 1000 900 1600 3300 12000 20000 4.0046e+05 1200 900 800 500 399 345 300 175 760 1500 5500 17000 4.0088e+05 3000 2400 1500 1500 1300 1100 900 867 923 1100 4000 32000 4.01e+05 3000 1500 1000 900 750 700 400 350 500 1100 3000 12000 8.8865e+05 0 900 821 701 689 621 545 421 495 550 4200 12000 4.0814e+05 6000 3100 8800 2300 1700 1400 1000 900 1600 3300 12000 25000 2.1046e+05 1800 9700 800 500 3997 349 300 175 760 1500 5500 27000 4.7082e+05 3100 9400 1540 1500 1350 1190 900 867 923 1400 3000 35000 5.101e+05 235 1800 1040 900 750 700 400 350 500 100 3000 18000 8.9975e+05 123 1700 823 701 689 621 545 421 495 650 4200 11000
Сохраните имена столбцов salesVolume
в массиве ячеек.
tablename = 'salesVolume'; colnames = {'stockNumber','January','February','March','April','May', ... 'June','July','August','September','October','November', ... 'December'};
Вставьте данные в таблицу.
fastinsert(conn,tablename,colnames,numdata)
Выберите и отобразите данные в salesVolume
представьте в виде таблицы снова.
data = select(conn,selectquery)
data = StockNumber January February March April May June July August September October November December ___________ _______ ________ _____ _____ ____ ____ ____ ______ _________ _______ ________ ________ 1.2597e+05 1400 1100 981 882 794 752 654 773 809 980 3045 19000 2.1257e+05 2400 1721 1414 1191 983 825 731 653 723 790 1400 5000 3.8912e+05 1800 1200 890 670 550 450 400 410 402 450 1200 16000 4.0031e+05 3000 2400 1800 1500 1200 900 700 650 1670 2500 6000 15000 4.0034e+05 4300 0 2600 1800 1600 1550 895 700 750 900 8000 24000 4.0035e+05 5000 3500 2800 2300 1700 1400 1000 900 1600 3300 12000 20000 4.0046e+05 1200 900 800 500 399 345 300 175 760 1500 5500 17000 4.0088e+05 3000 2400 1500 1500 1300 1100 900 867 923 1100 4000 32000 4.01e+05 3000 1500 1000 900 750 700 400 350 500 1100 3000 12000 8.8865e+05 0 900 821 701 689 621 545 421 495 550 4200 12000 4.0814e+05 6000 3100 8800 2300 1700 1400 1000 900 1600 3300 12000 25000 2.1046e+05 1800 9700 800 500 3997 349 300 175 760 1500 5500 27000 4.7082e+05 3100 9400 1540 1500 1350 1190 900 867 923 1400 3000 35000 5.101e+05 235 1800 1040 900 750 700 400 350 500 100 3000 18000 8.9975e+05 123 1700 823 701 689 621 545 421 495 650 4200 11000 7.7767e+05 0 350 400 450 250 450 500 515 235 100 300 600
Новая строка появляется в salesVolume
с данными из numdata
.
Закройте соединение с базой данных.
close(conn)
Во-первых, соединитесь с базой данных Microsoft® SQL Server®. Затем экспортируйте данные из MATLAB® в базу данных и фиксируйте транзакцию вставки. Закройте соединение с базой данных.
Создайте соединение с базой данных ODBC к базе данных Microsoft® SQL Server® с аутентификацией Windows®. Задайте пустое имя пользователя и пароль. Используйте аргумент пары "имя-значение" AutoCommit
задавать вручную передающие транзакции к базе данных.
datasource = 'MS SQL Server Auth'; conn = database(datasource,'','','AutoCommit','off');
Проверяйте соединение с базой данных. Если Message
свойство пусто, связь успешна.
conn.Message
ans = []
Вставьте массив ячеек data
в таблицу inventoryTable
с именами столбцов colnames
.
data = {157,358,740.00,datestr(now,'yyyy-mm-dd HH:MM:SS')}; colnames = {'productNumber','Quantity','Price','inventoryDate'}; tablename = 'inventoryTable'; fastinsert(conn,tablename,colnames,data)
Фиксируйте транзакцию вставки.
commit(conn)
Закройте соединение с базой данных.
close(conn)
Во-первых, соединитесь с базой данных Microsoft® SQL Server®. Затем экспортируйте булевы данные из MATLAB® в базу данных. Закройте соединение с базой данных.
Создайте соединение с базой данных ODBC к базе данных Microsoft® SQL Server® с аутентификацией Windows®. Задайте пустое имя пользователя и пароль.
datasource = 'MS SQL Server Auth'; conn = database(datasource,'','');
Эта база данных содержит таблицу Invoice
с этими столбцами:
InvoiceNumber
InvoiceDate
productNumber
Paid
Receipt
Проверяйте соединение с базой данных. Если Message
свойство пусто, затем связь успешна.
conn.Message
ans = []
Отобразите данные в Invoice
таблица перед вставкой.
selectquery = 'SELECT * FROM Invoice';
data = select(conn,selectquery)
data = 10×5 table InvoiceNumber InvoiceDate ProductNumber Paid Receipt _____________ _________________________ _____________ _____ ______________ 2101 '2010-08-01 00:00:00.000' 1 false [8000×1 uint8] 3546 '2010-03-01 00:00:00.000' 2 true [8000×1 uint8] 33116 '2011-05-15 00:00:00.000' 3 true [8000×1 uint8] 34155 '2011-07-12 00:00:00.000' 4 false [8000×1 uint8] 34267 '2011-07-22 00:00:00.000' 5 true [8000×1 uint8] 37197 '2011-09-03 00:00:00.000' 6 true [8000×1 uint8] 37281 '2011-09-21 00:00:00.000' 7 false [8000×1 uint8] 41011 '2011-12-12 00:00:00.000' 8 true [8000×1 uint8] 61178 '2012-01-15 00:00:00.000' 9 false [8000×1 uint8] 62145 '2012-01-23 00:00:00.000' 10 true [8000×1 uint8]
Создайте переменную insertdata
как структура, содержащая номер счета-фактуры 2105
, номер продуктов 11
, и булевы данные false
иметь значение неоплаченный. Булевы данные представлены как тип данных MATLAB® logical
. Этот код принимает, что изображение получения отсутствует.
insertdata.InvoiceNumber{1} = 2105;
insertdata.InvoiceDate{1} = datestr(now,'yyyy-mm-dd HH:MM:SS');
insertdata.productNumber{1} = 11;
insertdata.Paid{1} = false;
Вставьте заплаченные данные о счете в Invoice
таблица с именами столбцов colnames
использование соединения с базой данных.
colnames = {'InvoiceNumber';'InvoiceDate';'productNumber';'Paid'}; tablename = 'Invoice'; fastinsert(conn,tablename,colnames,insertdata)
Просмотрите новую запись в базе данных, чтобы проверить что Paid
значение столбца является булевской переменной. В некоторых базах данных, логическое значение MATLAB® false
показывает булевым false
, No
, или снятый флажок.
data = select(conn,selectquery)
data = 11×5 table InvoiceNumber InvoiceDate ProductNumber Paid Receipt _____________ _________________________ _____________ _____ ______________ 2101 '2010-08-01 00:00:00.000' 1 false [8000×1 uint8] 3546 '2010-03-01 00:00:00.000' 2 true [8000×1 uint8] 33116 '2011-05-15 00:00:00.000' 3 true [8000×1 uint8] 34155 '2011-07-12 00:00:00.000' 4 false [8000×1 uint8] 34267 '2011-07-22 00:00:00.000' 5 true [8000×1 uint8] 37197 '2011-09-03 00:00:00.000' 6 true [8000×1 uint8] 37281 '2011-09-21 00:00:00.000' 7 false [8000×1 uint8] 41011 '2011-12-12 00:00:00.000' 8 true [8000×1 uint8] 61178 '2012-01-15 00:00:00.000' 9 false [8000×1 uint8] 62145 '2012-01-23 00:00:00.000' 10 true [8000×1 uint8] 2105 '2017-01-04 10:19:42.000' 11 false ''
Последняя строка содержит булевы данные false
.
Закройте соединение с базой данных.
close(conn)
conn
— Соединение с базой данныхconnection
объектСоединение с базой данных в виде connection
объект создается с database
функция.
tablename
— Имя таблицы базы данныхИмя таблицы базы данных в виде вектора символов или строкового скаляра, обозначающего имя таблицы в базе данных.
Пример: 'employees'
Типы данных: char |
string
colnames
— Имена столбцов таблицы базы данныхИмена столбцов таблицы базы данных в виде массива ячеек одного или нескольких векторов символов или массива строк, чтобы обозначить столбцы в существующей таблице базы данных tablename
.
Пример: {'col1','col2','col3'}
Типы данных: cell
| string
data
— Данные, чтобы вставитьДанные, чтобы вставить в виде числовой матрицы, массива ячеек, таблицы, массива набора данных или структуры, которая содержит все данные для вставки в существующую таблицу базы данных tablename
. Если data
структура, затем имена полей в структуре должны совпадать с colnames
. Если data
таблица или массив набора данных, затем имена переменных в таблице или массиве набора данных должны совпадать с colnames
.
Чтобы вставить данные в структуру, таблица или массив набора данных, использует это специальное форматирование. Каждое поле или переменная в структуре, таблице или массиве набора данных должны быть массивом ячеек или двойным вектором. Двойной вектор должен иметь размер n
- 1, где n
количество строк, которые будут вставлены.
Чтобы уменьшать время преобразования, преобразуйте даты в последовательные числа даты с помощью datenum
прежде, чем вызвать fastinsert
.
Значение AutoCommit
свойство в connection
объект определяет ли fastinsert
автоматически передает данные базе данных.
Просмотреть AutoCommit
значение, получите доступ к нему с помощью connection
объект; например, conn.AutoCommit
.
Установить AutoCommit
значение, используйте соответствующий аргумент пары "имя-значение" в database
функция.
Чтобы передать данные базе данных, используйте commit
функционируйте или выпустите SQL COMMIT
оператор с помощью exec
функция.
Чтобы откатывать данные, используйте rollback
или выпустите SQL ROLLBACK
оператор с помощью exec
функция.
Если сообщение об ошибке как следующее появляется, когда вы запускаете fastinsert
, таблица может быть открыта в режиме редактирования.
[Vendor][ODBC Product Driver] The database engine could not lock table 'TableName' because it is already in use by another person or process.
В этом случае закройте таблицу в базе данных и повторно выполните fastinsert
функция.
Чтобы экспортировать данные MATLAB в базу данных, можно использовать datainsert
и insert
функции. Для максимальной производительности используйте datainsert
.
fastinsert
функция будет удаленаНе рекомендуемый запуск в R2018a
fastinsert
функция будет удалена в будущем релизе. Используйте sqlwrite
функцию вместо этого. Некоторые различия между рабочими процессами требуют обновлений вашего кода.
В предшествующих релизах вы экспортировали данные из рабочего пространства MATLAB в базу данных при помощи fastinsert
функционируйте и четыре входных параметра. Например:
tablename = 'productTable'; colnames = {'productNumber','stockNumber','supplierNumber', ... 'unitCost','productDescription'}; insertdata = {4,500565,1010,20,'Cooking Set'}; insertdata = cell2table(insertdata,'VariableNames',colnames) fastinsert(conn,tablename,colnames,insertdata)
Теперь sqlwrite
функция требует только трех входных параметров.
tablename = 'productTable'; colnames = {'productNumber','stockNumber','supplierNumber', ... 'unitCost','productDescription'}; insertdata = {4,500565,1010,20,'Cooking Set'}; insertdata = cell2table(insertdata,'VariableNames',colnames) sqlwrite(conn,tablename,insertdata)
close
| commit
| database
| insert
| logical
| rollback
| select
| sqlwrite
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.