3 Stimmen

Nicht genügend Speicher für die Dateizuordnung' beim Versuch, mit dem VFP ODBC-Treiber eine Aktualisierung auf einem verknüpften Server durchzuführen

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?

1voto

Alex Ayscough Punkte 101

Sie scheinen zwar genügend Speicherplatz zur Verfügung zu haben, aber als ich das gleiche Problem hatte, musste ich den SQL Server-Dienst stoppen und starten, gefolgt von der Ausführung von sp_dropserver y sp_addlinkedserver war ausreichend, um das Problem zu lösen:

IF  EXISTS (SELECT srv.name FROM sys.servers srv WHERE srv.server_id != 0 AND srv.name = N'DBF_XXX')EXEC master.dbo.sp_dropserver @server=N'DBF_XXX', @droplogins='droplogins'
GO
EXEC master.dbo.sp_addlinkedserver @server = N'DBF_XXX', @srvproduct=N'Microsoft Jet', @provider=N'VFPOLEDB', @datasrc=N'D:\Data To Import\XXX\data', @provstr=N'dBASE 5.0'

--For security reasons the linked server remote logins password is changed with ########
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'DBF_XXX',@useself=N'False',@locallogin=NULL,@rmtuser=N'Admin',@rmtpassword='########'

0voto

RMart Punkte 550

Vergewissern Sie sich, dass Sie keine der ODBC-Einschränkungen von VFP verletzen, weder in der Umgebung noch in den Tabellenstrukturen. Beachten Sie insbesondere, dass ODBC seit einiger Zeit nicht mehr unterstützt wird. Prüfen Sie aquí für eine gute Liste von Einschränkungen. Ist die Verwendung des OLEDB-Treibers für Sie eine Möglichkeit? Wenn ja, suchen Sie im Internet nach "VFPOLEDB driver download", um das zu bekommen, was Sie brauchen.

0 Stimmen

Danke für die Informationen - nach der Liste zu urteilen, verstoße ich gegen keine der Einschränkungen. Ich habe den OLE DB-Anbieter verwendet, aber ich bekomme verschiedene Fehler mit, dass.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X