Ich habe einen verknüpften Server in SQL Server 2008, der den MDASQL-Anbieter verwendet, um auf einen Visual Fox Pro ODBC DSN zuzugreifen.
Ich erhalte die folgenden Fehlermeldungen, wenn ich versuche, einfache Abfragen durchzuführen:
OLE DB provider "MSDASQL" for linked server "odbclinkedserver" returned message "[Microsoft][ODBC Visual FoxPro Driver]Not enough memory for file map.".
Msg 7399, Level 16, State 1, Line 1 The OLE DB provider "MSDASQL" for linked server "odbclinkedserver" reported an error. The provider ran out of memory.
Msg 7306, Level 16, State 2, Line 1 Cannot open the table "odbctable" from OLE DB provider "MSDASQL" for linked server "odbclinkedserver".
Ich versuche, diese Aktualisierungsabfrage auszuführen, die das Ziel der Aktivität ist:
update odbclinkedserver...odbctable
set memofield = m1.blob
from sqlsvrtable m1
where m1.int_1 = odbctable.int_1
and m1.int_2 = odbctable.int_2
and m1.time= odbctable.time
and odbctable.date= '2011-06-28'
Ich habe auch einige einfachere Abfragen ausprobiert und erhalte immer noch die gleichen Fehler:
select top 1 * from odbclinkedserver...odbctable
Die DSN-Quelle ist ein Free Table-Verzeichnis. Die Größen der beteiligten Dateien sind:
- odbctable.dbf = 62MB
- odbctable.cdx = 9,85MB
- odbctable.fpt = 200MB
Ich habe die SQL-Instanz so konfiguriert, dass sie mit dem Parameter '-g' mit einem Wert von 1024 gestartet wird, so dass ein Gig Arbeitsspeicher für diesen Vorgang reserviert ist (dies ist ein Testserver ohne andere Aktivitäten).
Verwendete Referenz: http://msdn.microsoft.com/en-us/library/ms190737.aspx
In Anbetracht der Größe der beteiligten Dateien, der Einfachheit der Abfragen und der Tatsache, dass ich ein Gigabyte Arbeitsspeicher dafür vorgesehen habe, gehen mir die Ideen zur Lösung dieses Problems aus.
Kann jemand eine Lösung vorschlagen, um diese Fehler zu beheben, so dass ich die Ziel-DBF mit der Update-Abfrage oben aktualisieren kann?