SQL Server 2012で、古いクラリオンアプリを新しいアプリに変換する必要があります。
私が持っているのは、TopScanと呼ばれるプログラムによってのみ開くことができるTPS拡張機能を備えた200のテーブルだけです。 (odbc、技術文書、サポートはありません)。
SQLにデータを抽出するC#プログラムを作成しています。
このようなテキストで見ることができるデータの構造
FILE,DRIVER('TOPSPEED'),NAME('C:\bIRA2013\BIRA_ARHIMED\PART.TPS')
PART:K_SIFPAR KEY(+PART:SIFPAR),NOCASE,PRIMARY
PART:K_ZIRO KEY(+PART:ZIRO),DUP,NOCASE
PART:K_NAZIV1 KEY(+PART:NAZIV1),DUP,NOCASE
PART:K_GRUPA KEY(+PART:GRUPA),DUP,NOCASE
PART:K_PORBR KEY(+PART:PORBR),DUP,NOCASE
PART:K_KOMER_SIFPAR KEY(+PART:KOMER,+PART:SIFPAR),DUP,NOCASE
PART:K_BANKA_SIFPAR KEY(+PART:BANKA,+PART:SIFPAR),DUP,NOCASE
PART:K_GRAD_SIFPAR KEY(+PART:GRAD,+PART:SIFPAR),DUP,NOCASE
PART:K_NACPL_SIFPAR KEY(+PART:NACPL,+PART:SIFPAR),DUP,NOCASE
PART:K_NACPLD_SIFPAR KEY(+PART:NACPLD,+PART:SIFPAR),DUP,NOCASE
PART:OPIS MEMO(2000)
RECORD RECORD
PART:SIFPAR STRING(10)
PART:ZIRO STRING(20)
PART:PORBR STRING(13)
PART:PORBRBIH STRING(10)
PART:NAZIV1 STRING(40)
PART:NAZIV2 STRING(40)
PART:GRUPA STRING(10)
PART:KUP STRING(2)
PART:DOB STRING(2)
PART:ADRESA STRING(30)
PART:GRAD STRING(25)
PART:PBROJ STRING(5)
PART:TEL1 STRING(15)
PART:TEL2 STRING(15)
PART:FAX STRING(15)
PART:OSOBA STRING(30)
PART:RABAT DECIMAL(5,2)
PART:RABATD DECIMAL(5,2)
PART:CASSA DECIMAL(5,2)
PART:CASSAD DECIMAL(5,2)
PART:NACPL STRING(2)
PART:NACPLD STRING(2)
PART:KOEF DECIMAL(5,4)
PART:DVO LONG
PART:BANKA STRING(6)
PART:VEZDOK STRING(10)
PART:IZJAVA STRING(10)
PART:KOMER STRING(3)
PART:EMAIL STRING(40)
PART:WWW STRING(60)
PART:ID STRING(2)
PART:D LONG
END
END
テーブルの構造を表すRECORDとENDの間のROWSだと思います。すべてのテーブルを実行すると、リストのように次のタイプのデータが見つかります
STRING(10) --many sizes (10,20,100,200)
CSTRING(256) --many sizes (2000,3000)
LONG
DECIMAL(7,4)
BYTE
REAL
GROUP
これらのタイプをSQLServerタイプにマップするにはどうすればよいですか?
私にとってDECIMAL
は直撃のみですが、それでもそれほど自信はありません。
私がとても困惑しているのは、DATE
に対応するタイプが見つからないためです。
サブ質問は、クラリオンがテーブルに日付を保持する方法は?
Clarion TPSファイルの日付は、整数であるClarionLongとして保存されます。これらは、1800年12月28日から経過した日数として定義されます。有効なクラリオン標準日付範囲は、1801年1月1日から9999年12月31日までです。
2015年2月27日-ニモイが亡くなった日付-はクラリオンの日付78,223です。
クラリオン文字列はCHARです。 Clarion CstringはVARCHARです-注:CString(21)= Varchar(20)
個人的には、odbcドライバーを購入し、SQLウィザードを使用してすべてのファイルをインポートします http://www.softvelocity.com/drivers/tsodbc.htm
大変な作業です。
私は最悪の事態を想定して作成します:
その後、各列のデータを個別に確認し、調査結果を決定する必要があります。
日付は文字列として保存される場合があります。 (MSはTypePerfでもこれについて有罪です。)