Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
CursorAdapter Updating
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Versions des environnements
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP
Database:
MS SQL Server
Divers
Thread ID:
01311736
Message ID:
01311756
Vues:
27
>I have the following CursorAdapter defined.
>
>
>**************************************************
>*-- Class: BooksAndAuthors
>*-- Program: BooksAndAuthors.prg
>*
>* CursorAdapter to provide access to the Microsoft
>* SQL Server data for books and authors
>*
>
>DEFINE CLASS booksandauthors AS cursoradapter
>	SelectCmd = [SELECT TI.Title_id, TI.Title, AU.au_Lname, ] + ;
>					[AU.au_Fname, TI.PubDate, ] + ;
>					[TI.Price AS Price FROM pubs.dbo.Titles TI ] + ;
>					[JOIN pubs.dbo.TitleAuthor TA ON TI.Title_id = TA.Title_id ] + ;
>					[JOIN pubs.dbo.Authors AU ON TA.au_id = AU.au_id ] + ;
>					[ORDER BY 1,2,3]
>	Tables = [Titles]
>	KeyFieldList = [title_id]
>	UpdateNameList = "Title pubs.dbo.Titles.Title"
>	UpdatableFieldList = [Title]
>	Alias = "BooksAndAuthors"
>	DataSourceType = "ODBC"
>	CursorSchema = "Title_id C(6), Title C(120), Lname C(40), FName C(40), Pubdate T, Price Y"
>	Name = "BooksAndAuthors"
>	FetchAsNeeded = .T.
>	AllowUpdate = .T.
>	SendUpdates = .T.
>	
>	FUNCTION Init
>		LOCAL lcConnection
>		lcConnection = "driver=SQL Server; " + ;
>		               ";server=NYCPSJWBOOTH\VINCENT; " + ;
>		               "uid=***; pwd=***"
>		This.DataSource = SQLSTRINGCONNECT(lcConnection)
>	ENDFUNC
>
>ENDDEFINE
>
>
>I can query the data with the following;
>
>
>ox = NEWOBJECT("BooksAndAuthors","c:\effective\application\prgs\booksandauthors.prg")
>ox.CursorFill()
>BROWSE last
>
>
>And I see the browse window and can edit the title field on the first record. I move off of the first record without any error and then I execute;
>
>
>?TABLEUPDATE(.t.,.t.,"BooksAndAuthors",laerror)
>
>
>And tableupdate returns -1, the array has one element with the value of -1 and an AERROR() show no error occurred.
>
>Any ideas why this CA won't do an update?

UpdateNameList should contains KeyField also:
UpdateNameList = "Title pubs.dbo.Titles.Title, title_id pubs.dbo.Titles.title_id"
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform