2
##Read table staStations
if ($mssqldb->Sql("SELECT stationID, security, dockingCostPerVolume, maxShipVolumeDockable, officeRentalCost, operationID, stationTypeID, corporationID, solarSystemID, constellationID, regionID, stationName, reprocessingEfficiency, reprocessingStationsTake, reprocessingHangarFlag
 FROM staStations")) {
    print "SQL Error: " . $mssqldb->Error() . "\n";
    $mssqldb->disconnect;
    exit;
}


# Read table staStations
$count = 0 ;

while ($mssqldb->FetchRow) {
    my ($stationID, $security, $dockingCostPerVolume, $maxShipVolumeDockable, $officeRentalCost, $operationID, $stationTypeID, $corporationID, $solarSystemID, $constellationID, $regionID, $stationName, $reprocessingEfficiency, $reprocessingStationsTake, $reprocessingHangarFlag) = $mssqldb->Data();  ### Get data values from the row
    $stationName =~ s/\'/\'/g;
    $mysqlconnect->do("INSERT INTO staStations(stationID, security, dockingCostPerVolume, maxShipVolumeDockable, officeRentalCost, operationID, stationTypeID, corporationID, solarSystemID, constellationID, regionID, stationName, reprocessingEfficiency, reprocessingStationsTake, reprocessingHangarFlag)
    VALUES ('$stationID', '$security', '$dockingCostPerVolume', '$maxShipVolumeDockable', '$officeRentalCost', '$operationID', '$stationTypeID', '$corporationID', '$solarSystemID', '$constellationID', '$regionID', '$stationName', '$reprocessingEfficiency', '$reprocessingStationsTake', '$reprocessingHangarFlag') ;");
    $count = $count + 1 ;
    print $count . " Rows into staStations \n" ;

}

その最初の部分は正常に動作します

    if ($mssqldb->Sql("SELECT iconID, iconFile, description FROM eveIcons")) {
    print "SQL Error: " . $mssqldb->Error() . "\n";
    $mssqldb->disconnect;
    exit;
}



# write table eveIcons
foreach ($mssqldb->FetchRow()) {
    my ($iconID, $iconFile, $description) = $mssqldb->Data();  ### Get data values from the row
    $description =~ s/\'/\'/g;
    #$iconFile  =~ s/\_/\_/g;
    print "iconID: " . $iconID . "\n" ;
    print "file: " . $iconFile . "\n" ;
    print "desc: " . $description . "\n \n" ;
    $mysqlconnect->do("INSERT INTO eveIcons(`iconID`, `iconFile`, `description`)
    VALUES ('$iconID', '$iconFile', '$description') ;");
    $count = $count + 1 ;
    print $count . " Rows into eveIcons \n" ;
}

問題が見つかりませんが、何も返されません。これはデータを読み取りません..

MySqlテーブルの最初の列に「0」を配置します

MSSQL テーブルには 1689 のレコードがあります。

4

2 に答える 2

1

mssql からの長いデータ列の読み取りで問題が発生し、LongTruncOk と LongReadLen がそれらを解決しました。

あなたはそれらを書くのに苦労しているようです。この記事を試してみてください: http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=%2Fcom.ibm.db2.udb.apdv.sample.doc%2Fdoc% 2Fperl%2Fs-dtlob-pl.htm

ブロブの書き方のサンプルがあります。それを説明フィールドに適用してみてください。

于 2012-10-17T03:21:50.333 に答える
0

理由はよくわかりませんが、MSSQLサーバーの説明フィールドで大量のメモリを割り当てようとしていたため、その列のコピーを停止すると、正常に機能しました。

MSSQLテーブルのmoreinfoデータ型はVARCHAR(MAX)に設定されていますが、その列のどのフィールドにも127文字を超えるものはありませんでした。

于 2012-10-16T21:37:21.840 に答える