ImpData-from-DB
データベースからOriginにデータをインポートする機能は2つあります。
どちらの機能でも、繰り返し使用のためにデータベース接続はODSファイルに保存でき、データベース接続とクエリはODQファイルに保存できます。64bit版Originでのデータベースからのインポートの方が早いので、SQL言語に不慣れな場合はクエリービルダでODSおよびODQファイルを作成したのちに64bit版OriginのSQLエディタでODQをロードし、実際にインポートすることをお勧めします。
このチュートリアルでは、SQLエディタとクエリービルダを使用してSQLサーバへの接続を構築する方法と、特定の表から希望のデータを抽出する方法を示します。ここで使用するSQLデータベースは AdventureWorks データベースです。AdventureWorks データベースの取り付け方法についての詳細情報は、CodePlex のWebサイトを参照してください。
このチュートリアルは、クエリービルダが32bit版Originのみサポートしておりますので、32bit版Originのみ対象です。
チュートリアルの各ステップはローカルなデータベースでの操作例です。このチュートリアルのまま操作することは出来ません。
このチュートリアルでは、以下の項目について解説します:
サーバマシンnoho上にSQLサーバAdventureWorks2008を予めセットアップ済であることを想定しています。
あるいは、すでに接続文字列がある場合、ファイル:接続文字列を編集... メニューを選択して、接続文字列エディタダイアログを開きます。次のSQL文字列を入力し、OKをクリックして接続を作成します。
Provider=SQLOLEDB.1; Password=labtalk2015; Persist Security Info=TRUE; USER ID=CONNECT; Initial Catalog=AdventureWorks2008; DATA SOURCE=noho
SELECT e.BusinessEntityID, p.Title, p.FirstName, p.MiddleName, p.LastName, p.Suffix, e.JobTitle, pp.PhoneNumber, pnt.Name AS PhoneNumberType, ea.EmailAddress, p.EmailPromotion, a.AddressLine1, a.AddressLine2, a.City, sp.Name AS StateProvinceName, a.PostalCode, cr.Name AS CountryRegionName, p.AdditionalContactInfo FROM HumanResources.Employee AS e INNER JOIN Person.Person AS p ON p.BusinessEntityID = e.BusinessEntityID INNER JOIN Person.BusinessEntityAddress AS bea ON bea.BusinessEntityID = e.BusinessEntityID INNER JOIN Person.Address AS a ON a.AddressID = bea.AddressID INNER JOIN Person.StateProvince AS sp ON sp.StateProvinceID = a.StateProvinceID INNER JOIN Person.CountryRegion AS cr ON cr.CountryRegionCode = sp.CountryRegionCode LEFT OUTER JOIN Person.PersonPhone AS pp ON pp.BusinessEntityID = p.BusinessEntityID LEFT OUTER JOIN Person.PhoneNumberType AS pnt ON pp.PhoneNumberTypeID = pnt.PhoneNumberTypeID LEFT OUTER JOIN Person.EmailAddress AS ea ON p.BusinessEntityID = ea.BusinessEntityID
データをデータベースからインポートするのにSQLエディタ、クエリービルダどちらを使用しても接続とクエリーは自動でワークシートに保存されます。データベースアクセスツールバーの、データのインポートボタンをクリックすれば、データベースからデータをいつでも再インポートできます。次のように操作してみましょう。
上のサンプルでは、ワシントン州のデータのみインポートしました。しかし、それはコード化されていないので、別の州をクエリーしたい場合、クエリーを変更する必要があります。このセクションでは、州名のLabTalk文字列変数を定義してクエリーを簡単に変更できるようにする方法を示します。
string strCond$ = "Washington";
WHERE sp.name = '%(strCond$)'