[Gambas-user] DataSource
Fabien Bodard
gambas.fr at gmail.com
Mon Nov 23 16:30:21 CET 2020
Well thank you Martin ...
But that's not exactly what I'm looking for :-).
I need to wait about Benoit answer ... or read myself datasource code ...
Le lun. 23 nov. 2020 à 11:54, Martin <mbelmonte at belmotek.net> a écrit :
>
> The answer is .Create
>
> In this example, I use a temporary control to edit the data and then delete the control, you could hide it instead of deleting it.
> If you already have controls on your form, simply use .Create
>
> Sorry but I couldn't find a way to do it without a data control.
>
> Public Sub Form_Open()
>
>
> Dim tb As Table
> Dim fd As Field
> Dim dt As DataControl
>
> DataSource1.Connection.Open
> DataSource1.Table = "clients"
> DataSource1.Filter = db.Subst("cname = &1", "martin")
> DataSource1.MoveFirst
>
> dt = New DataControl(DataSource1) As "dat"
> With dt
> .Name = "temportal"
> .Field = "cphone"
> .Value = Format(Now(), "hhnnss.u")
> End With
> dt.Refresh
>
> End
>
> Public Sub Button1_Click()
>
> Dim tdat As Control
>
> DataSource1.Create
> For Each tdat In DataSource1.Children
> If tdat.Name = "temportal" Then
> tdat.Delete
> Endif
>
> Next
>
> Martin
>
> On 23/11/20 11:08, Fabien Bodard wrote:
>
> My question is just about the ability to edit data if I use a filter on the datasource.
>
> Le lun. 23 nov. 2020 à 09:39, Martin <mbelmonte at belmotek.net> a écrit :
>>
>> Hi,
>>
>> I don't usually use the db.form component but maybe you could use the "filter" property to restrict to a single record and then
>> Datasource.Filter = DB.Subst ("prenom = & 1", martin)
>> If you have a test project to take a look maybe I can think of something else.
>>
>> Anyway this can help too
>>
>>
>> Public Sub Form_Open()
>>
>> Dim f As ResultField
>> Dim res As Result
>>
>> res = db.Current.Exec("SELECT * FROM tutabla WHERE id='3'")
>>
>> If res Then
>> If res.Fields.Exist("tucampo") Then
>> Print res.Fields["tucampo"]
>> Endif
>> Endif
>>
>> End
>>
>> Martin
>>
>> On 22/11/20 22:59, Fabien Bodard wrote:
>>
>> I need help..
>>
>> I want my datasource reach a given line given one field and not a line
>> index... how can I achieve that quickly ... Actually I'm doing it by a
>> Force and stupid way.
>>
>>
>> Static Private reference As String
>>
>> Public Sub Run(Value As String)
>>
>> reference = Value
>> FClientEdit.Showmodal
>>
>> End
>>
>> Public Sub Form_Open()
>>
>> Dim i As Integer
>> Dim aGeo As String[]
>>
>> '----- HERE HOW TO FIND LINE :-/ --------------
>> DataSource1.MoveFirst
>> For i = 0 To DataSource1.Count - 1
>> If DataSource1["reference"] = reference Then Break
>> DataSource1.MoveNext
>> Next
>> '-------------------------------------------
>>
>> Me.Text = DataSource1["reference"] & " - " & DataSource1["nom"] & "
>> " & DataSource1["prenom"]
>>
>> If Not DataSource1!geo Then
>> MapView1.Enabled = False
>> Else
>> MapView1.Map.AddTile("OpenStreetMap",
>> "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", Null).Copyright =
>> "© OpenStreetMap " & ("contributors")
>> MapView1.Map.Zoom = 12
>> MapView1.Map.AddShape("clients")
>> aGeo = Split(DataSource1!geo, " ")
>> MapView1.Map.Center = MapPoint(aGeo[0], aGeo[1])
>> MapView1.Map["clients"].AddPoint(DataSource1!reference,
>> MapPoint(aGeo[0], aGeo[1]))
>> Endif
>>
>> End
>>
>>
>>
>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]----
>>
>>
>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]----
>
>
> ----[ http://gambaswiki.org/wiki/doc/netiquette ]----
>
>
> ----[ http://gambaswiki.org/wiki/doc/netiquette ]----
--
Fabien Bodard
More information about the User
mailing list