Я думаю, что OracleBulkCopy - один из самых быстрых способов. У меня были некоторые проблемы, чтобы узнать, что мне нужна новая версия ODAC. Ср Где находится тип [Oracle.DataAccess.Client.OracleBulkCopy]?
Вот полный код PowerShell для копирования из запроса в подходящую существующую таблицу Oracle. Я пытался использовать Sql-Server как источник данных, но другие действительные источники OLE-DB перейдут на.
if ($ora_dll -eq $null)
{
"Load Oracle dll"
$ora_dll = [System.Reflection.Assembly]::LoadWithPartialName("Oracle.DataAccess")
$ora_dll
}
# sql-server or Oracle source example is sql-server
$ConnectionString ="server=localhost;database=myDatabase;trusted_connection=yes;Provider=SQLNCLI10;"
# Oracle destination
$oraClientConnString = "Data Source=myTNS;User ID=myUser;Password=myPassword"
$tableName = "mytable"
$sql = "select * from $tableName"
$OLEDBConn = New-Object System.Data.OleDb.OleDbConnection($ConnectionString)
$OLEDBConn.open()
$readcmd = New-Object system.Data.OleDb.OleDbCommand($sql,$OLEDBConn)
$readcmd.CommandTimeout = '300'
$da = New-Object system.Data.OleDb.OleDbDataAdapter($readcmd)
$dt = New-Object system.Data.datatable
[void]$da.fill($dt)
$OLEDBConn.close()
#Write-Output $dt
if ($dt)
{
try
{
$bulkCopy = new-object ("Oracle.DataAccess.Client.OracleBulkCopy") $oraClientConnString
$bulkCopy.DestinationTableName = $tableName
$bulkCopy.BatchSize = 5000
$bulkCopy.BulkCopyTimeout = 10000
$bulkCopy.WriteToServer($dt)
$bulkcopy.close()
$bulkcopy.Dispose()
}
catch
{
$ex = Я думаю, что OracleBulkCopy - один из самых быстрых способов. У меня были некоторые проблемы, чтобы узнать, что мне нужна новая версия ODAC. Ср Где находится тип [Oracle.DataAccess.Client.OracleBulkCopy]?
Вот полный код PowerShell для копирования из запроса в подходящую существующую таблицу Oracle. Я пытался использовать Sql-Server как источник данных, но другие действительные источники OLE-DB перейдут на.
[110] Кстати: я использую это для копирования таблицы со столбцами CLOB. Я не получил это работать с использованием связанных серверов ср. вопрос по дба . Я не пытался повторно связать подачу с новым ODAC.
.Exception
Write-Error "Write-DataTable$($connectionName):$ex.Message"
continue
}
}
Кстати: я использую это для копирования таблицы со столбцами CLOB. Я не получил это работать с использованием связанных серверов ср. вопрос по дба . Я не пытался повторно связать подачу с новым ODAC.
Сначала задайте contentSize
UIScrollView
, чтобы иметь ширину, равную ширине кадра UIScrollView или меньшую ее.
Затем установите UIScrollView
alwaysBounceHorizontal
на NO. Это предотвратит "резиновую полосу" в представлении прокрутки, даже если вы сказали, что горизонтального содержимого для отображения больше нет.
UIScrollView *scrollView;
CGSize size = scrollView.contentSize;
size.width = CGRectGetWidth(scrollView.frame);
scrollView.contentSize = size;
scrollView.alwaysBounceHorizontal = NO;
Не имеет значения, что на самом деле находится внутри представления прокрутки.
Swift 5.0
let scrollView = UIScrollView() // Or however you want to initialize it
var size = scrollView.contentSize
size.width = scrollView.frame.width
scrollView.contentSize = size
scrollView.alwaysBounceHorizontal = false
Вы создадите подкласс UIScrollView
и переопределите метод touchesBegan: withEvent:
, touchesMoved: withEvent:
метод и метод touchesEnded: withEvent:
.
Вы будете использовать эти методы вместе с начальной и конечной точками касания, чтобы вычислить, какое событие касания имело место: простое касание, горизонтальное или вертикальное смахивание?
Если это горизонтальное смахивание, вы отменяете событие касания.
Взгляните на исходный код здесь , чтобы узнать, как можно начать.